4
在我的Django項目中,用戶可以註冊免費試用版,但如果他們在15天內未完成購買,他們的賬戶將被鎖定,直到他們完成購買。在13天后(即48小時內或到期),我希望發送一封電子郵件給註冊用戶提醒他/她購買。Django:x天后發送郵件
目前,如果註冊日期和當前日期相隔2天,我將設置每天運行的cron作業並檢查所有試用帳戶,如果有,我發送電子郵件。
我想知道是否有更優雅的解決方案來做到這一點?
在我的Django項目中,用戶可以註冊免費試用版,但如果他們在15天內未完成購買,他們的賬戶將被鎖定,直到他們完成購買。在13天后(即48小時內或到期),我希望發送一封電子郵件給註冊用戶提醒他/她購買。Django:x天后發送郵件
目前,如果註冊日期和當前日期相隔2天,我將設置每天運行的cron作業並檢查所有試用帳戶,如果有,我發送電子郵件。
我想知道是否有更優雅的解決方案來做到這一點?
如果你不想混淆你的cron文件,你應該檢查出Celery,這是一個用Python編寫的異步任務隊列。它最初是在Django的基礎上創建的,但後來被打破出來into a separate package。你想要做的又是什麼建立一個Celerybeat schedule這樣的:
CELERYBEAT_SCHEDULE = {
"purchase-reminder": {
"task": "accounts.tasks.remind",
"schedule": timedelta(hours=24),
},
}
這將調用任務(閱讀:功能)accounts.tasks.remind
每24小時。
爲什麼這不優雅? – 2012-04-02 19:22:21
聽起來像一個非常標準的方式來做到這一點。 – yoozer8 2012-04-02 19:22:28
+1兩個其他評論。除非您需要更高級的任務,否則cronjob聽起來就像是最優雅的解決方案。 – 2012-04-02 19:25:49