我正在与Celery http://celery.readthedocs.org/en/latest/index.html
合作我需要在特定时刻执行定期任务。但我只想在启动芹菜工人后开始我的任务。
为此,我正在尝试创建自己的“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]
提前致谢。
答案 0 :(得分:1)
要运行定期任务,您需要开始芹菜节拍。您可以通过在启动worker时传递-B参数来执行此操作:
celery worker -B --app=worker_manager.celery --loglevel=info