Django结合Celery进行异步调用
from celery import shared_task
from django.core.mail import send_mail
from django.conf import settings
@shared_task
def send_email_task(subject, message, recipient_list):
"""
异步发送邮件的任务。
:param subject: 邮件主题
:param message: 邮件内容
:param recipient_list: 收件人列表
"""
send_mail(
subject,
message,
settings.DEFAULT_FROM_EMAIL,
recipient_list,
fail_silently=False,
)
# 使用示例
# 在视图或其他逻辑中
send_email_task.delay('主题', '邮件正文', ['receiver@example.com'])
这段代码定义了一个名为send_email_task
的异步Celery任务,它使用Django的send_mail
函数来发送邮件。通过调用.delay
方法,我们可以异步地触发任务,而不会阻塞当前的请求-响应循环。这是一个在Django项目中结合使用Celery进行异步操作的简单示例。
评论已关闭