Du mußt wegkommen von dem Gedanken, dass es irgendwo eine große Schleife gibt, die alles kontrolliert. Ich habe in meinem letzten Beispiel gezeigt, wie einzelne, kleine Schleifen nebeneinander laufen können, ohne dass sie sich gegenseitig blockieren.
Ich glaub, ich werd gleich mit ner Tastatur verhauen 🫣. Soweit ich das gerade kopiert und versucht hab umzustellen, ist das für mich nicht zielführend. Ein einfacher Counter in einem anderen Task, der nicht mit dem rabbit-Client, der alles blockiert, solang er keine Nachricht bekommt ...
also langsam fang ich echt an zu zweifeln... Ich hab beide Codes von dir gerade getestet. Beim ersten bleibt das Script bei await rabbit_client.incoming_messages.get() hängen und läuft erst nach eingegangener Nachricht weiter. Ich hab den Code folgend ergänzt, um das zu erreichen, was ich vor hab ...
@Sirius3: Okay, wow.. ich hab's tatsächlich geschafft deinen Codeblock zu übersehen. Tut mir wirklich leid. Wenn ich deinen Code 1:1 übernehm (bis auf die Host-Daten) und teste, dann hab ich das Ergebnis, dass zum einem die main()-Loop nicht durchläuft (erkannt durch eingefügen print()) UND wohl ...
die Tatsache das "Genau jetzt" die Zeitdauer Y abgelaufen ist, ist eigentlich (meiner Meinung nach) auch ein Event... gut, man müsste diese ominöse 'Schleife' wohl komplett umprogrammieren um die ganzen time.time() durch was anderes zu ersetzen. (ob es dadurch besser/übersichtlicher wird, kann ich ...
Die GUI ist die von RabbitMQ, das Management-Plugin. Damit versuch ich erst mal generell das System zu begreifen. Die Hauptschleife soll das while True in der main() sein. Steht halt aktuell nichts drin, weil ich da erst mal die Nachrichten raus bekommen will, also über das get_incoming_messanges ...
@Fipsi Das sieht nach programmieren durch raten aus
das ist es gerade gefühlt auch...
Jetzt steh ich komplett auf dem Schlauch 🤯
Andere Aufgaben gibt's gerade deshalb noch nicht, weil ich jetzt erst mal die Kommunikation auf die Reihe bringen will/wollte. Die Queues fütter ich aus der GUI ...
Ich versuch mich gerade an der asyncio-Variante, aber ich häng wieder an einer Blockierung. Ich bin mir ziemlich sicher, dass das an meinem nach wie vor lückenhaften Verständnis von asyncio liegt, aber 1,5 h googlen und experimentieren haben mich noch nicht ...
Warum heißt's dann überall, dass SelectConnection non-blocking ist? Oder steh ich da jetzt komplett auf dem Schlauch?
Ich schau mir deinen Link an, danke dafür.
ich sag's ganz ehrlich: ich bin gerade echt genervt 🙃. Und ja, wahrscheinlich ist meine herangehensweise nicht immer die richtige, aber das ist die, mit der ich normal arbeiten kann. Tut mir leid, dass ich ganz "etwas" stinkig bin, aber diese Probleme gehen mir sowas von auf den ...
aufgrund der Empfehlung letzter Woche will ich mein System jetzt mit RabbitMQ umsetzen, hab aber noch "etwas" Verständnisprobleme, die teilweise auch sicher auf mein schwaches Englisch zurückzuführen sind. Damit ihr versteht/wisst, was ich vorhabe und bisher "verstanden" hab, mein ...
dann scheint mir die korrekt Formulierung "wird's socket.io oder socket.io und das von Sirius3 vorgeschlagene rabbitMQ" zu sein...
Jepp, das hab ich mittlerweile auch gelesen. Soweit ich rabbitMQ bisher verstanden hab, ist das nicht die optimale Lösung für meine Anwendung. Ich hab nach dem ...
Socket.io hatte ich in meinem 3 Post (https://www.python-forum.de/viewtopic.php?p=429681&sid=13e18749f68efbb2708d86cd42d3648e#p429681) ja zum testen verwendet, die Lib ist mir also seit ein paar Tagen bekannt. Ich wollte aber vermeiden einen zweiten Socket-Dienst für das eine Teilprojekt zu ...
Danke für die Hinweise, ich werd die Stück für Stück abarbeiten.
Ist ne Weile her, dass ich des Protokoll geschrieben hab. Die Intention dahinter war, dass ich die Daten ins Format JSON pack, zu einem String umwandle (1 Zeile = 1 Nachricht), sende, der Empfänger wandelt es wieder zurück in JSON und ...
Öhm... okay.. dann hab ich, glaub ich, gewaltig nen Wurm drin. Also folgendes zu meinem (geglaubten, offensichtlichem) Halbwissen: Das Pi-Rudel verbindet sich mit dem Server über Sockets auf dem Port 14400. Das hielt ich für TCP-Sockets, die KEIN HTTP-Request sind.