2016-07-04 20 views
2

Ich möchte eine Aufgabe in die Warteschlange beim Start der Anwendung hinzufügen, die derzeit scheduler.queue_task(...) der Hauptdatei db.py Datei hinzugefügt. Dies ist nicht ideal, da ich die Task-Funktion in dieser Datei definieren musste.Web2py Scheduler - Best Practices zur kontinuierlichen Ausführung von Aufgaben und zum Hinzufügen von Aufgaben beim Start

Ich möchte auch die Aufgabe, um alle 2 Minuten kontinuierlich zu wiederholen.

Ich würde gerne wissen, was ist die beste Praxis dafür?

+0

Warum habe ich eine Abstimmung nach unten bekommen? Immer wenn ich eine Frage zu web2py in Problembereichen stelle, bekomme ich eine Down-Abstimmung. Dasselbe Szenario bezüglich Komponententests. – frage

Antwort

0

Es gibt keinen wirklichen Mechanismus dafür in web2py es scheint.

Es gibt ein paar Hacks, die man tun könnte, um Aufgaben oder Zeitplan beim Start wiederholt zu wiederholen, aber soweit ich sehen kann, benötigt der web2py Scheduler viel Arbeit.

Die beste Option ist, einfach diese web2py Funktion zu verlassen und celery oder ähnliches für fortgeschrittene Verwendung zu verwenden.

2

As stated in web2py doc, Aufgabe kontinuierlich erneut ausführen, können Sie es nur bei Aufgabe Warteschlangenzeit angeben:

@reboot root *your_controller/your_function_that_calls_queue_task 
:

scheduler.queue_task(your_function, 
        pargs=your_args, 
        timeout = 120, # just in case 
        period=120,  # as you want to run it every 2 minutes 
        immediate=True, # starts task ASAP 
        repeats=0  # just does the infinite repeat magic 
        ) 

Um es beim Start Warteschlange, könnten Sie web2py cron feature diese einfache Art und Weise verwenden möchten

Vergessen Sie nicht, diese Funktion zu aktivieren (-Y, weitere Details im Dokument).

IMO: Ihre Frage ist interessant und verdient keine Down-Abstimmung, ich habe es mir vor ein paar Tagen gefragt! :)

+0

Ich bekomme eine Abstimmung für jede web2py Frage !! Ich werde dies versuchen, ich hatte auch Probleme mit der Aufgabe nicht erfolgreich abgeschlossen, ich bekomme immer ein TIMEOUT-Ergebnis (das ist ein größeres Problem http://stackoverflow.com/questions/38186032/why-is-successful-task -timing-out-in-web2py-Scheduler? Noredirect = 1 # Kommentar63814565_38186032). – frage