2014-04-02 2 views
0

를 시작한 후 PeriodicTask을 시작. 하지만 셀러리 작업자를 시작한 후에 만 ​​작업을 시작하고 싶습니다.셀러리는 : 나는 셀러리 <a href="http://celery.readthedocs.org/en/latest/index.html" rel="nofollow">http://celery.readthedocs.org/en/latest/index.html</a> 내가 특정 순간에 정기적 인 작업을 실행해야</p> <p>함께 일하고 있어요 노동자

나는 내 자신의 "PeriodicTask"를 만들려고합니다. 그러나 나는 문제를 다루고있다.

다른 터미널에서 작업자를 시작하고 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

정기적 인 작업을 실행하려면 셀러리 비트를 시작해야합니다. 작업자를 시작할 때 -B 인수를 전달하면됩니다.

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

감사합니다. 옵션 -B를 추가하면 작업자 시작시 정기적 인 작업이 실행됩니다. run_tasks.py에서 태스크를 실행하려면 어떻게해야합니까? –