【发布时间】:2019-08-15 15:49:18
【问题描述】:
我在我的 django 项目中使用 Celery 来创建在未来特定时间发送电子邮件的任务。用户可以使用notify_on 日期时间字段创建通知实例。然后我将notify_on 的值作为eta 传递。
class Notification(models.Model):
...
notify_on = models.DateTimeField()
def notification_post_save(instance, *args, **kwargs):
send_notification.apply_async((instance,), eta=instance.notify_on)
signals.post_save.connect(notification_post_save, sender=Notification)
这种方法的问题在于,如果notify_on 将被用户更改,他将收到两个(或更多)通知而不是一个。
问题是我如何更新与特定通知关联的任务,或者以某种方式删除旧的并创建新的。
【问题讨论】: