[Python-de] select.epoll() vs async framework (PostgreSQL)

Thomas Güttler guettliml at thomas-guettler.de
Do Jan 18 11:19:17 EST 2018



Am 16.01.2018 um 19:55 schrieb Stefan Behnel:
> Sven R. Kunze schrieb am 15.01.2018 um 20:55:
>> On 15.01.2018 17:07, Diez B. Roggisch wrote:
>>>> On 15. Jan 2018, at 16:46, Thomas Güttler wrote:
>>>> Was ist aus deiner Sicht das, was alle nehmen?
>>> Ich rate mal: asyncio. Die Chance, das du zB http-clients da einfach
>>> einpluggen kannst, und damit schon auf einem deutlich besseren
>>> Abstraktionsniveau unterwegs bist, als mit rohen Filedeskriptoren und
>>> epoll zu arbeiten laesst mich vermuten, dass es sich dabei um das
>>> Alufelgenrad handelt.
>>
>> Aus meiner Sicht gequilter Unsinn. asyncio is ein Nischenprodukt und alle
>> Welt verwendet File-Deskriptoren. Wunschdenken sollte nicht mit der
>> Realität verwechseln werden.
>>
>> Sockets sind meiner Meinung nach ein viel besseres Abstraktionsniveau als
>> meinen Quellcode überall mit diesem dämlichen async und await zu spicken.
> 
> Ich verstehe nicht, warum das ein Argument dafür sein sollte, sich seinen
> eigenen I/O-Loop zu schreiben. AsyncIO wurde exakt und einzig und allein
> aus dem Grund geschrieben, dass es bereits zu viele davon gab, die alle
> nicht miteinander kompatibel waren. Wenn Thomas also jetzt darüber
> nachdenkt, sein handgedrechseltes select() noch weiter zu einem solchen
> auszubauen, dann nehme ich das als Anreiz, auf die vergleichbaren Fehler
> anderer hinzuweisen, aus denen bereits nachhaltig Lehren gezogen wurden.
> 

Hallo,

danke für den Hinweis. Ich hatte bloß mit "voll
erweiterbare, luftgepolsterte Alufelgenrad" überhaupt nichts anfangen können.
Mit obigen Zeilen von dir aber schon.



> Ein hübsches Ergebnis ist jetzt z.B., dass das Tornado Web-Framework in der
> Version 5 komplett auf asyncio umziehen wird und in der Folgeversion den
> eigenen I/O-Loop über den Jordan jagt. Das große Aufräumen hat begonnen.
> 
> Und eine zweite Implementierung von asyncio gibt es mit uvloop auch schon,
> so dass jetzt auf beiden Seiten der Schnittstelle die freie Auswahl
> besteht. AsyncIO ist auf dem besten Weg, für die Welt des kooperativen
> Multitaskings so etwas zu werden wie WSGI es seit Jahren schon für
> synchrone Web-Frameworks ist.

... Ja, ich wünschte ich könnte Python 2.7 schnell hinter mir lassen. Das
geht aber nicht. Halt, das ist aber ein neuer Thread. Der hier ist
schon lang genug.

Gruß,
   Thomas


-- 
Thomas Guettler http://www.thomas-guettler.de/
I am looking for feedback: https://github.com/guettli/programming-guidelines


Mehr Informationen über die Mailingliste python-de