2012-04-02 195 views
4

在我的Django項目中,用戶可以註冊免費試用版,但如果他們在15天內未完成購買,他們的賬戶將被鎖定,直到他們完成購買。在13天后(即48小時內或到期),我希望發送一封電子郵件給註冊用戶提醒他/她購買。Django:x天后發送郵件

目前,如果註冊日期和當前日期相隔2天,我將設置每天運行的cron作業並檢查所有試用帳戶,如果有,我發送電子郵件。

我想知道是否有更優雅的解決方案來做到這一點?

+6

爲什麼這不優雅? – 2012-04-02 19:22:21

+3

聽起來像一個非常標準的方式來做到這一點。 – yoozer8 2012-04-02 19:22:28

+0

+1兩個其他評論。除非您需要更高級的任務,否則cronjob聽起來就像是最優雅的解決方案。 – 2012-04-02 19:25:49

回答

0

如果你不想混淆你的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小時。