2014-04-02 42 views
0

後開始PeriodicTask我與芹菜http://celery.readthedocs.org/en/latest/index.html芹菜:啓動職工

我需要在特定時刻運行週期任務的工作。但我只想在啓動芹菜工人後開始我的任務。

爲此我試圖創建自己的「PeriodicTask」。但我正在處理一個問題。

當我啓動worker並在另一個終端中執行run_tasks.py時,似乎我的週期性任務只執行一次。

我該怎麼做我的定期任務每3秒運行一次。

以下是代碼的一部分。

開始芹菜:

celery worker --app=worker_manager.celery --loglevel=info 

文件tasks.py

class MyPeriodicTask(PeriodicTask): 

    name = "periodic-task" 
    run_every = timedelta(seconds=3) 

    def run(self, **kwargs): 

     logger = self.get_logger(**kwargs) 
     logger.info("Running periodic task!") 

文件run_tasks.py

tasks.register(MyPeriodicTask) 

wmi_collector_task = worker_app.tasks[MyPeriodicTask.name] 

提前致謝。

回答

1

要運行定期任務,您需要啓動芹菜拍。您可以通過在啓動worker時傳遞-B參數來執行此操作:

celery worker -B --app=worker_manager.celery --loglevel=info 
+0

謝謝。當我添加選項-B時,我在啓動worker時執行了定期任務。我怎麼能在run_tasks.py中運行這個任務 –