使用芹菜任务通过django定期发送电子邮件
发布时间:2022-07-30 01:48:28 427
相关标签: # springboot
class Group(models.Model):
leader = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=55)
description = models.TextField()
joined = models.ManyToManyField(User, blank=True)
start_time = models.TimeField(null=True)
end_time = models.TimeField(null=True)
email_list = ArrayField(
models.CharField(max_length=255, blank=True),
blank=True,
default=list,
)
我想给所有joined
一个特定的小组在比赛前30分钟start_time
。例如:如果一个组有一个start_time
下午1:00,我想给所有joined
用户在下午12:30,让他们知道小组将很快开会。
我目前有一堆芹菜任务运行时没有出错,但它们都是在视图中由用户调用的(创建、更新、加入、离开和删除组将触发芹菜任务向用户发送电子邮件通知)。
我想,我在这里试图完成的预定电子邮件将是一项周期性任务,不受用户控制。然而,它不像我见过的其他定期任务,因为它所依赖的时间是基于start_time
特定群体的。
@Brian在评论中指出,它可以是定期芹菜任务,由定期任务每分钟调用一次。这是我的芹菜任务:
@shared_task(name='start_group_notification_task')
def start_group_notification_task(recipients):
logger.info('sent email to whole group that group is starting')
for recipient in recipients:
send_mail (
'group starting',
'group starting',
NOTIFICATION_EMAIL,
[recipient],
fail_silently=False
)
start_time
==现在+30分钟。我读过这些文件,但我对芹菜和芹菜节拍不太熟悉,对如何前进有点困惑。
start_time
电子邮件将发送到哪里。例如:会议前10分钟、30分钟、1小时,但这与模型有关。
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报