2016-08-17 64 views
0

我使用的是django 1.9。我正在制定要求,在我们的平台上签署了x小时后,我们需要发送用户提醒以通过电子邮件激活其帐户。用户注册6小时后,Django发送邮件和短信

我有send_mail任务,我已配置Django RQ发送邮件。

我能想到的一种方法是使用Django RQ scheduler设置一个cron作业,每5分钟运行一次,以检查6小时前注册的用户。

有没有更好的方法来做到这一点?

+0

我推荐http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html。 – itzMEonTV

+0

谢谢,但我已经配置了django rq和rq调度程序并正常运行,所以我避免添加一个更多的任务管理器,如芹菜。 – Kishan

+0

好的。因此您可以在x小时后安排任务吗?您将使用模型信号触发https://docs.djangoproject.com/zh/110/topics/signals/。那么为此目的不需要cronjob。 – itzMEonTV

回答

1

查看django-rq文档,如果同时安装了django-rqrq-scheduler,看起来您不需要创建定期作业。只需在登录时安排您的工作。

# From django-rq docs 
import django_rq 
# Select the queue you want to use, here it uses default queue 
scheduler = django_rq.get_scheduler('default') 
# HERE: Set the datetime X HOURS from sign on 
job = scheduler.enqueue_at(datetime(2020, 10, 10), func) 

参考:django-rq docs Support for RQ Scheduler部分

注:我没有使用Django的RQ自己。