如何在django中执行异步任务?

时间:2017-06-08 10:52:15

标签: python django multithreading asynchronous

我有点迷失在这里。我想在邮件请求上使用django发送电子邮件。但我不希望用户等待回复,所以我在后台线程中发送它。此外,电子邮件将按照用户提供的顺序每30秒发送一次。

但是用户可以选择取消发送电子邮件,即处理取消输入的不同邮寄请求。

如何在发送电子邮件的帖子中侦听取消操作? 如何实现30秒延迟? 我想过使用睡眠,但如果我这样做,那么它会跳过取消信号吗?

1 个答案:

答案 0 :(得分:1)

如上所述,可能是使用Celery任务异步发送电子邮件的情况。然后,为了取消发送电子邮件,处理POST(取消)请求的视图可以撤销负责发送该电子邮件序列的任务。这个question/answer显示了如何做到这一点。