Ich muss demnächst ein Python-Programm entwickeln, um mit einer Anzahl von, sagen wir mal 1000 Geräten oder mehr über TCP zu kommunizieren. Jeder Verbindungsaufbau stellt einen client-seitigen Socket bereit und kommuniziert dann auf Stream-Basis mit den Geräten.
Bisher habe ich select.select() recht erfolgreich eingesetzt, um benachrichtigt zu werden, sobald am Socket etwas zum Lesen eintrifft oder wenn das Schreiben abgeschlossen ist.
Jetzt habe ich ein wenig über Python Async IO gelesen, und sehe, dass ich dafür auch asynchrone Funktionsdefinitionen auf Basis von Co-Routinen verwenden könnte. Ich denke, es wäre möglich, mit diesem Framework eleganteren Code schreiben, anstatt mein altes Muster wiederzuverwenden.
Ich bin mir jedoch nicht sicher, ob ich etwas Zeit investieren soll, um dies zu erlernen, oder ob ich nur mit meinem altmodischen Ansatz zufrieden sein soll. Bisher hab ich mich gerade ein paar Tage damit beschäftigt und weiß zu wenig, als dass ich absehen könnte, ob es mir wirklich was bringt.
Aus einer sehr groben Sicht heraus kam ich zu dem Schluss, dass ich mit asyncio alles was ich brauche eleganter lösen könnte. Was wäre aber der wahre Vorteil abgesehen von der Verwendung eines "modernen" und "coolen" Frameworks?