0
我使用的是django 1.9。我正在制定要求,在我们的平台上签署了x小时后,我们需要发送用户提醒以通过电子邮件激活其帐户。用户注册6小时后,Django发送邮件和短信
我有send_mail任务,我已配置Django RQ发送邮件。
我能想到的一种方法是使用Django RQ scheduler设置一个cron作业,每5分钟运行一次,以检查6小时前注册的用户。
有没有更好的方法来做到这一点?
我使用的是django 1.9。我正在制定要求,在我们的平台上签署了x小时后,我们需要发送用户提醒以通过电子邮件激活其帐户。用户注册6小时后,Django发送邮件和短信
我有send_mail任务,我已配置Django RQ发送邮件。
我能想到的一种方法是使用Django RQ scheduler设置一个cron作业,每5分钟运行一次,以检查6小时前注册的用户。
有没有更好的方法来做到这一点?
查看django-rq文档,如果同时安装了django-rq
和rq-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自己。
我推荐http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html。 – itzMEonTV
谢谢,但我已经配置了django rq和rq调度程序并正常运行,所以我避免添加一个更多的任务管理器,如芹菜。 – Kishan
好的。因此您可以在x小时后安排任务吗?您将使用模型信号触发https://docs.djangoproject.com/zh/110/topics/signals/。那么为此目的不需要cronjob。 – itzMEonTV