2016-07-04 51 views
2

我想在應用程序啓動時將任務添加到隊列中,當前將scheduler.queue_task(...)添加到主文件db.py文件中。這是不理想的,因爲我必須在這個文件中定義任務函數。Web2py調度程序 - 連續重新運行任務並在啓動時添加任務的最佳實踐

我也希望任務連續重複每2分鐘。

我想知道這是什麼最佳實踐?

+0

爲什麼我得到一個投票?任何時候,我在問題領域問一個關於web2py的問題,我會得到一個投票。與單元測試相同的情況。 – frage

回答

0

在web2py中似乎沒有真正的機制。

在啓動過程中,可以通過一些竅門來連續重複任務或計劃,但就我所見,web2py調度程序需要很多工作。

最好的選擇就是放棄這個web2py功能,並使用celery或類似的高級用法。

2

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:你的問題很有意思,不值得投票,前幾天我問了自己! :)

+0

我得到每個web2py問題的投票!我會給這個嘗試,我也有任務沒有成功完成的問題,我總是得到一個超時結果(這是一個更大的問題http://stackoverflow.com/questions/38186032/why-is-successful-task -timing出合的web2py調度?noredirect = 1#comment63814565_38186032)。 – frage

相關問題