我想监视/报告任务状态,但是仅在完成所有任务后才保存任务。我希望它们一开始就被保存。
'''在我的队列项目中'''
celery.py
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Queue.settings')
app = Celery('Queue',
broker='redis://localhost:6379',
backend='django-db',
task_track_started=True,
include=['index.tasks'])
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
“索引”应用程序内部 task.py
from __future__ import absolute_import, unicode_literals
from celery import shared_task, current_task
import time
@shared_task
def gozle():
time.sleep(15)
return 1
views.py
def index(request):
gozle.delay()
return HttpResponse('<a href="admin/">admin</a>')
我希望当我访问索引页面时,我的任务会被触发并记录到ResultTask中,但是它会等待15秒然后被记录。
答案 0 :(得分:0)
应该立即确认任务的开始,您应该在celery服务器上看到一个日志条目,上面写着celery
任务已开始,然后等待15秒钟并退出,此退出状态也将保持打开状态task_acks_late
服务器日志。如果不是这种情况,则可能与在celery
配置中启用pn2
有关,这里是doc,使其仅在任务结束后才确认任务。