我想监视/报告任务状态,但是仅在完成所有任务后才保存任务。我希望它们一开始就被保存。'''在我的队列项目中'''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秒然后被记录。
应该立即确认任务的开始,您应该在celery服务器上看到一个日志条目,上面写着gozle
任务已启动,然后等待15秒钟并退出,该退出状态也将位于[C0服务器日志。如果不是这种情况,则可能与在celery
配置中启用task_acks_late
有关,这里是celery
,使其仅在任务结束后才确认任务。