Ich versuche eine Sellerie-Aufgabe zu implementieren, die eine API aufrufen würde, die etwa 10-15 Sekunden zur Ausführung benötigt. Nach dem Aufruf der API muss ich das Ergebnis mit http-get abfragen. Jetzt möchte ich alle 2 Sekunden nach Ergebnissen suchen, was bedeutet, dass der Arbeiter für diese 2 Sekunden frei wäre. Kann ich Sellerie irgendwie sagen, dass dieser bestimmte Arbeiter für diesen Zeitraum frei sein würde? Lass es mich wissen, wenn ich mich nicht klar gemacht habe.Python - Kann ich einen Sellerie-Arbeiter programmatisch für eine gewisse Zeit frei machen?
Antwort
Es gibt 2 Möglichkeiten, eine Sellerieaufgabe zu verzögern.
1st:
>>> tomorrow = datetime.now() + timedelta(days=1)
>>> add.apply_async(args=[10, 10], eta=tomorrow)
2nd:
>>> result = add.apply_async(args=[10, 10], countdown=3)
>>> result.get() # this takes at least 3 seconds to return
Quelle: https://ask.github.io/celery/userguide/executing.html#eta-and-countdown
Also bedeutet das nicht, dass der Arbeiter, der ** add ** ausführt, für die nächsten 3 Sekunden beschäftigt ist? –
Ich möchte den Worker freigeben, speichern Sie es Kontext und führen Sie es erneut in einer Verzögerung von 3 Sekunden, wenn die Antwort nicht keine ist. Für z.B. Sagen Sie, wenn ** add ** nur 1 Sekunde dauert, wird der Arbeiter für die nächsten 2 Sekunden frei sein? –
Nein. Es bedeutet nicht, dass es 3 Sek. Lang beschäftigt ist. Aber wird nach 3 Sekunden ausgeführt – AceLearn
- 1. Wie kann ich mit PyCharm einen Selleriearbeiter lokal debuggen?
- 2. Machen Sie einen Prozess Schlaf für eine zufällige Zeit - Erlang
- 3. Python Tornado: Wie kann ich das asynchron machen?
- 4. Was kann Signal.Signal Block für eine lange Zeit machen?
- 5. Wie stelle ich sicher, dass eine Python-While-Schleife eine gewisse Zeit benötigt, um ausgeführt zu werden?
- 6. Wie programmatisch einen Link aktiv machen
- 7. Facebook: Kann ich programmatisch einen Freund hinzufügen?
- 8. Bezahlte Android-App für eine Woche kostenlos machen?
- 9. PHP-Ausgabe (etwas frei machen)
- 10. Hide div Element mit jQuery, wenn die Maus für eine gewisse Zeit nicht bewegt wird?
- 11. Wie kann ich einen Kontakt programmatisch hinzufügen?
- 12. Wie kann ich eine Binärcodierung eines Strings in Python machen?
- 13. Eine Website nur für eine bestimmte Zeit verfügbar machen
- 14. Kann ich einen Eröffnungstext für die angegebene Zeit erstellen?
- 15. programmatisch DatumPicker Zeit auf die aktuelle Zeit
- 16. C++: Kann ich einen Zuweisungsoperator "explizit" machen
- 17. Kann ich einen TTreeNode unsichtbar machen?
- 18. Wie kann ich einen Hintergrund anklickbar machen?
- 19. eine gewisse Menge beschränken für das Hinzufügen von den Warenkorb
- 20. Wie kann ich eine Nachricht programmatisch verfassen?
- 21. Wie kann ich einen Java-Daemon machen
- 22. wie kann ich einen scennshot programmatisch machen? im iphone sdk 4.2?
- 23. Wie kann ich einen Teil einer Datenbank öffentlich zugänglich machen?
- 24. Kann ich Android: layout_toLeftOf programmatisch?
- 25. Overlays für gewisse Zeit zu verbergen, wenn Benutzer klickt Close Button
- 26. Wie kann ich eine wiederverwendbare LabelFunction für Flex Datagrid machen?
- 27. Kann ich programmatisch einen Schritt in jWizard verbergen?
- 28. Wie kann ich HotKey für Buttons machen
- 29. Common Lisp hat eine gewisse Funktion. Wie kann ich einige oder irgendwelche in elisp schreiben?
- 30. Starten HiveThriftServer programmatisch in Python
Sie meinen, zu sagen, dass Sie eine Aufgabe für 2 Sekunden verzögert werden soll? – AceLearn
Ja. Stimmt. –