django celery 发送多封邮件

django celery send multiple emails

我有这样的看法

def MyView(request):
    SendMyMail(args)

我的 SendMymail 是:

def SendMymail(args):
    send_mail(title, content, sender, receiver)

这里如果消息太多的话,我想把消息发送过程排队。我已经阅读了芹菜的文档并了解了基础。

我在许多示例中看​​到人们正在创建 task.py 文件,他们在其中定义带有句点的任务。我想知道在视图中写什么。

任何人都可以给我一个明确的例子,我怎样才能完成发送多封电子邮件

好的,我给你举个例子。使用 celery 发送邮件异步。

def my_view(request):

    from tasks import celery_send_mail

    user = request.user
    <some_stuff>
    celery_send_mail.delay(user.email)
    <keep_going>
    return render(request)

然后在 tasks.py

@celery_app.task(ignore_result=True)
def celery_send_email(email):
    <send_your_mail>

要使用celerybeat,你可以从你的celery.conf文件中定期设置任务运行,或者使用第三方应用程序来帮助,我使用django-celery,你可以设置管理员的定期任务。