我想在應用程序啓動時將任務添加到隊列中,當前將scheduler.queue_task(...)
添加到主文件db.py文件中。這是不理想的,因爲我必須在這個文件中定義任務函數。Web2py調度程序 - 連續重新運行任務並在啓動時添加任務的最佳實踐
我也希望任務連續重複每2分鐘。
我想知道這是什麼最佳實踐?
我想在應用程序啓動時將任務添加到隊列中,當前將scheduler.queue_task(...)
添加到主文件db.py文件中。這是不理想的,因爲我必須在這個文件中定義任務函數。Web2py調度程序 - 連續重新運行任務並在啓動時添加任務的最佳實踐
我也希望任務連續重複每2分鐘。
我想知道這是什麼最佳實踐?
在web2py中似乎沒有真正的機制。
在啓動過程中,可以通過一些竅門來連續重複任務或計劃,但就我所見,web2py調度程序需要很多工作。
最好的選擇就是放棄這個web2py功能,並使用celery或類似的高級用法。
As stated in web2py doc,不斷重新運行的任務,你只需要在任務的排隊時間,將其指定:
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
)
在啓動時排隊,你可能需要使用web2py cron feature這種簡單的方法:
@reboot root *your_controller/your_function_that_calls_queue_task
不要忘記啓用此功能(-Y,文檔中有更多詳細信息)。
IMO:你的問題很有意思,不值得投票,前幾天我問了自己! :)
我得到每個web2py問題的投票!我會給這個嘗試,我也有任務沒有成功完成的問題,我總是得到一個超時結果(這是一個更大的問題http://stackoverflow.com/questions/38186032/why-is-successful-task -timing出合的web2py調度?noredirect = 1#comment63814565_38186032)。 – frage
爲什麼我得到一個投票?任何時候,我在問題領域問一個關於web2py的問題,我會得到一個投票。與單元測試相同的情況。 – frage