apply_asyn c не работает в сельдерее и django - PullRequest
0 голосов
/ 21 марта 2020

У меня есть 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 для отправки почты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...