Ich bin etwas Code ausgeführt, der X Arbeiter hat, jeder Arbeiter zieht Aufgaben aus einer Warteschlange jede Sekunde. Dazu benutze ich twisted task.LoopingCall()
Funktion. Jeder Worker erfüllt seine Anforderung (schabt einige Daten) und schiebt dann die Antwort zurück zu einer anderen Warteschlange. All dies geschieht im Reaktor-Thread, da ich dies nicht auf irgendeinen anderen Thread vertage.Twisted - sollte dieser Code in separaten Threads ausgeführt werden
Ich frage mich, ob ich alle diese Jobs in separaten Threads ausführen oder sie so lassen sollte, wie sie sind. Und wenn ja, gibt es ein Problem, wenn ich jede Sekunde von jedem Thread task.LoopingCall
aufrufen?
"Erstens, Vorsicht, dass Twisted-Reaktor manchmal Multithreads" - in keiner Weise, die Sie beobachten können. Wenn du * jemals * feststellst, dass dein Code in einem Nicht-Reaktor-Thread läuft und du nicht darum gebeten hast, ist es ein Fehler, bitte melde ihn (ich kenne keine Fälle, in denen das jemals passiert ist). –
Natürlich meinte ich es nicht willkürlich Multithreads, Jean-Paul, bitte. Ich meinte, Abstraktionen auf hoher Ebene könnten einen Multi-Threaded-Reaktor implementieren, und Sie könnten sich als Benutzer des Codes nicht bewusst sein. Der Mangel an Details im ursprünglichen Beitrag hat mich dazu gebracht, zu glauben, dass OP nicht sein könnte. Gratulation zu der ausgezeichneten Arbeit, die ihr mit Twisted macht. – slezica