Python 工作进程关闭时芹菜活动任务丢失
我使用的是芹菜=4.0.0,当一个任务运行更长的时间,而在此期间工作人员关闭时,我丢失了所有这些任务。如何重新启动所有丢失的任务。提前谢谢。 芹菜=4.0.0Python 工作进程关闭时芹菜活动任务丢失,python,django,celery,django-celery,celery-task,Python,Django,Celery,Django Celery,Celery Task,我使用的是芹菜=4.0.0,当一个任务运行更长的时间,而在此期间工作人员关闭时,我丢失了所有这些任务。如何重新启动所有丢失的任务。提前谢谢。 芹菜=4.0.0 redis=2.10.5您应该覆盖芹菜信号方法。 信号表 为芹菜任务创建一个模型。例如,它的名称是CeleryStask。 在运行任务之前,在CeleryStask模型中创建新的任务对象。当芹菜重新启动并且工人准备就绪时,任务将再次运行 任务。py 这应该是有帮助的-一定要阅读注意事项。 from celery.signals impo
redis=2.10.5您应该覆盖芹菜信号方法。 信号表 为芹菜任务创建一个模型。例如,它的名称是CeleryStask。 在运行任务之前,在CeleryStask模型中创建新的任务对象。当芹菜重新启动并且工人准备就绪时,任务将再次运行 任务。py 这应该是有帮助的-一定要阅读注意事项。
from celery.signals import worker_ready, task_prerun
def on_task_prerun(*args, **kwargs):
from .models import CeleryTask
task_properties = kwargs['task']
ctask = CeleryTask.objects.create(
task_name=task_properties.name,
task_args=task_properties.request.args
)
def on_worker_ready(*args, **kwargs):
from .models import CeleryTask
from celery.execute import send_task
tasks = CeleryTask.objects.all()
for ctask in tasks:
send_task(ctask.task_name, ctask.task_args)
worker_ready.connect(on_worker_ready, dispatch_uid='on_worker_ready')
task_prerun.connect(on_task_prerun, dispatch_uid='on_task_prerun')