Ich muss einige Sellerie Aufgaben in zufälligen Zeiten laufen - jeder Lauf sollte zu einer neuen zufälligen Zeit sein - die Zufallszahl sollte jeden Lauf generiert werden.
, was ich in der Vergangenheit getan hat, ist:
Sellerie Aufgaben in zufälligen Zeiten
"my_task": {
"task": "path.to.my_task",
"schedule": crontab(minute='*/%s' % rand),
},
rand = random(1,12)
aber dieser Code ist nicht gut für meine Bedürfnisse anu mehr:
1. Ich unterschiedliche benötigen (wie möglich mit random0 Nummer für jeden Mieter
2. andere Nummer wird jedes Mal, und zwar nicht nur auf settings.py Last (einmal) erzeugt
ich versuchte Zeitplan zu überschreiben, wie in THIS Antwort erklärt, aber es hat nicht funktioniert, ist es besser so? bin ich etwas fehlt?
Dank (zum Beispiel in Mietern A wird die Aufgabe nach 8, und in Mietern B die Aufgabe ausgeführt werden soll, auf 4 und am Tag danach bei 20 usw. bei 23 und dem Tag läuft)!
======== Update ====
nach der großen Antwort, die ich bekam, habe ich Option, um meine Aufgabe und verarbeitet es in apply_asynch Verfahren als suggested-
.
"my-task": { # deprecated task
"task": "mdm_sync.tasks.test_task",
# "schedule": new_sc(),
"schedule": crontab(minute=39, hour=11),
"options": {
"eta": datetime.utcnow()
}
},
entry.options["eta"] = datetime.datetime.utcnow() + datetime.timedelta(seconds=random(3600,12*3600)
funktioniert super!
ich mit Ihrer Lösung bearbeitet, die Frage zu sein. Vielen Dank! – amichib
Gerne helfen. :) –