【发布时间】:2020-12-27 03:57:40
【问题描述】:
我正在使用 Django 和 Celery 异步发送邮件。当我调用调用任务的视图函数时,出现以下错误:
[2020-09-08 17:47:49,148: ERROR/ForkPoolWorker-8] 任务 main_app.tasks.send_notice[244944f6-604c-47a0-901a-4c510563d76e] 引发意外:DoesNotExist('通知匹配查询不存在.')
这只发生在我使用延迟时。如果我调用 send_notice_task(notice_id) 而不是 send_notice_task.delay(notice_id) 它可以找到通知,但延迟它会不断抛出该错误。有什么想法吗?
/views.py
def notice_approve(request, notice_id):
notice = Notice.objects.get(id=notice_id)
notice.approve()
# send_notice_task(notice_id)
send_notice_task.delay(notice_id)
return redirect('manage')
/tasks.py
def send_notice_task(notice_id):
print(notice_id)
notice = Notice.objects.get(id=notice_id)
subscribers = Subscriber.objects.filter(approved=True)
recipient_list = []
for sub in subscribers:
recipient_list.append(sub.email)
datatuple = (f'{notice.subject} - Notice',
html_message,
'CONCERN Network <cnb@gmail.com>',
recipient_list)
send_mass_mail((datatuple,), fail_silently=False)
【问题讨论】:
标签: django celery django-celery celery-task