任务是一条消息,“周期性任务”定期发送任务消息。每个发送的任务都会分配一个唯一的ID。
revoke将只取消单个任务消息。要获取任务的ID,您必须保留发送ID的 跟踪,但您也可以在发送任务时指定自定义ID。
我不确定是否要取消单个任务消息,或者如果您想停止发送更多消息的定期任务,那么我会列出两个答案。
没有内置的方式来保持与周期性任务, 但你可以设置ID为每个任务周期性任务的名义发送任务的ID,这样 的ID将指任何与周期性任务一起发送的任务(通常是最后一个任务)。 您可以指定一个自定义的ID这样,
或者与@periodic_task装饰:
@periodic_task(options={"task_id": "my_periodic_task"})
def my_periodic_task():
pass
或与CELERYBEAT_SCHEDULE设置:
CELERYBEAT_SCHEDULE = {name: {"task": task_name,
"options": {"task_id": name}}}
如果你想简单地删除您周期性任务从代码库中删除@periodic_task,或从CELERYBEAT_SCHEDULE删除条目。 如果您使用的是Django数据库调度程序,则必须从Django Admin界面中删除定期任务 。
PS1:revoke不会停止已经启动的任务。它只取消尚未开始的 任务。您可以使用 revoke(task_id, terminate=True)来终止正在运行的任务。默认情况下,如果您想发送另一个信号(例如KILL),使用