16

我想在我的用户注册 48 小时后向他们发送一封电子邮件。我如何使用 celery 实现这一点?如果我创建一个定期任务来发送电子邮件,我将不得不决定我想要执行该任务的具体时间。我不想每秒都运行一个 celery 任务来检查是否有任何电子邮件需要发送。

4

1 回答 1

34

你会想要使用ETA。阅读文档的该部分,因为它将包含更多信息。但是,您的代码将如下所示:

from datetime import datetime, timedelta
send_date = datetime.utcnow() + timedelta(days=2)
email_user.apply_async([user], eta=send_date)
于 2014-06-04T10:52:36.433 回答