返回

使用芹菜任务通过django定期发送电子邮件

发布时间:2022-07-30 01:48:28 446
# 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小时,但这与模型有关。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像