2016-08-17 66 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自己。