Ich möchte eine Anwendung mit dem Twisted-Framework entwerfen, die mit einigen Deferreds mehrfeldige Elemente in eine Warteschlange einfügt.
Die Anwendung verbraucht die Warteschlange mit anderen Deferreds. Das Problem ist, dass ich die Warteschlangenelemente nicht in der Reihenfolge der Hinzufügung verbrauchen möchte, sondern einigen Elementen basierend auf dem Feldinhalt eine höhere Priorität einräumen möchte.
Meine derzeitige (wahrscheinlich fehlerhafte) Idee war es, einen Generator zu haben, der ein SQL-Select ausführt, das ein Ergebnis mit der richtigen Priorität erzeugt, und über dieses Ergebnis iteriert, um Deferreds zu erzeugen. Das Problem ist, dass während der Generator über das Ergebnis iteriert, weitere Elemente durch Deferreds zur Warteschlange hinzugefügt werden können.
Gibt es eine Möglichkeit, dies zu tun, ohne jedes Mal, wenn der Generator aufgerufen wird, ein neues Select auszuführen? Kann das "Ergebnisset" und der Iteratorcursor automatisch "aktualisiert" werden?
Falls nicht, wie würden Sie dies implementieren?