У меня есть shared_task для отправки почты
@shared_task
def run_auto():
# Creata context for templates display
top_article = Article.objects.all()[0]
article1 = Article.objects.all()[1:3]
article2 = Article.objects.all()[3:5]
last_article = Article.objects.all()[5:8]
context = {
'top_article': top_article,
'article1': article1,
'article2': article2,
'last_article': last_article,
}
for x,y in zip(user_list,time_list):
msg_plain = render_to_string('timeset/email_templates.txt')
msg_html = render_to_string('timeset/index3.html', context)
subject = "NEWS"
recepient = x
sending.apply_async((subject,msg_plain,EMAIL_HOST_USER,recepient,msg_html), eta=y)
@shared_task
def sending(subject,msg_plain,EMAIL_HOST_USER, recepient, msg_html):
send_mail(subject, msg_plain, EMAIL_HOST_USER, [recepient],
html_message=msg_html,fail_silently=False)
и в settings.py в django я планирую задачу run_auto
'send_mail_at_spe_time': {
'task': 'crawldata.tasks.run_auto',
'schedule': crontab(hour=10,minute=28),
}
Задача run_auto работает при запуске celery -beat и -worker, но run_auto не вызывает apply_asyn c в функции, как я могу вызвать asyn c apply для отправки почты