如何动态地向Celery(celerybeat)添加/删除周期性任务

9 浏览
0 Comments

如何动态地向Celery(celerybeat)添加/删除周期性任务

如果我有一个定义如下的函数:

def add(x,y):
  return x+y

有没有办法在运行时将这个函数动态地添加为一个celery周期任务并启动它?我希望能够像这样做(伪代码):

some_unique_task_id = celery.beat.schedule_task(add, run_every=crontab(minute="*/30"))
celery.beat.start(some_unique_task_id)

我还想通过类似以下的方式动态地停止或删除该任务(伪代码):

celery.beat.remove_task(some_unique_task_id)

或者

celery.beat.stop(some_unique_task_id)

FYI我没有使用djcelery,该工具可以通过django管理界面管理周期任务。

0