Ich habe eine Web-App, in der ich Sellerie verwenden möchte, um Hintergrundaufgaben aus einer Datenbank zu laden. Ich lade gerade die Datenbank auf Anfrage, möchte aber die Aufgaben stündlich laden und im Hintergrund arbeiten lassen. Ich benutze Kolben und bin in Python codieren. Ich habe auch wieder laufen.
Bisher habe ich mit Sellerie den Arbeiter dazu gebracht, die Aufgabe und den Takt zu bearbeiten, um die Aufgaben in einem Intervall an den Arbeiter zu senden. Aber ich möchte die Ergebnisse [einen Datenrahmen oder eine Abfrage] von dem Arbeiter abrufen, und wenn das Ergebnis nicht bereit ist, sollte es das vorherige Ergebnis des Arbeiters laden.
Irgendwelche Ideen, wie man das macht?
Bearbeiten
Ich lade die Ergebnisse aus einer Datenbank mit sqlalchemy ab und richte die Ergebnisse auf einer Webseite aus. Ich habe meine Homepage mit all den verschiedenen Links, die alle zu verschiedenen Graphen führen, die ich im Hintergrund laden möchte, damit der Benutzer nicht lange auf Ladezeiten warten muss.
Die Sellerie Aufgabe wird von einem Arbeiter ausgeführt, und das Ergebnis wird sein gespeichert im Sellerie Backend .
Wenn ich Sie richtig verstehe, dann denke ich, dass Sie wenige Möglichkeiten haben:
Sie können nach dem Ergebnis einer Aufgabe suchen, wenn Sie geben es ID . Sie können dies tun, wenn Sie den Status herausfinden möchten, etwa (% code% ist die Sellerie-App): celery
Verwenden Sie Callback , um weiter zu aktualisieren neues Ergebnis ist fertig.
Ich habe die Option # 1 in ähnlichen Fällen (mit MongoDB) persönlich verwendet und festgestellt, dass sie sehr wartbar und flexibel ist. Aber möglicherweise, aufgrund der Art Ihrer Benutzeroberfläche, Option 3 wird besser für Sie Bedürfnisse.