2013-07-10 62 views
5

得到了一個簡單的問題,我相信,但它讓我堅持反正。Django在模型日期時間字段中指定的時間執行任務

說我有一個簡單的模型:

class myModel(models.Model): 
    expires = models.DateTimeField(...) 

,我想,說在指定的時間做一些事情:發送電子郵件,刪除模式,改變一些車型領域的...東西。 django核心中是否有工具,允許我這樣做?或者,如果不是的話,我認爲一些任務排隊工具可能是按順序排列的。我有djcelery在我的項目中工作,儘管我是一個完全新手,並且迄今爲止我能夠執行的所有操作都是運行django-celery-email程序包,以便以異步方式發送我的郵件。雖然我不能說我完全有能力確定任務和工作人員在後臺工作,並且可靠。

如果有任何想法,如何解決這樣的問題,請不要猶豫=)

回答

1

我認爲最好的背景任務是讀取datime並在達到或已經達到日期時間時執行任務。

看到這裏給出一個scheduled task

的解決方案,因此工作流程將是:

  • 創建要應用的對象,其日期已經達到
  • 創建同治命令任務檢查數據庫中的日期時間,並對達到日期時間的每個對象執行上述任務
  • 使用cron(Linux)或在(Windows)安排命令調用
+0

這就是我要用的,謝謝! –

-1

如果你是一個類似於UNIX的機器上,它可能是你有機會獲得cronjobs。如果你在Windows上,我聽說有一個名爲at的程序可以做類似的事情。如果這不符合您的需求,可以使用time庫(time.sleep(SOME_NUMBER_OF_SECONDS))中的任何其他任何您想要執行的操作來執行此操作,如果您需要定期執行某些操作,則可以採用多種方法每隔X小時執行一次操作,否則,你需要看看time.localtime()並檢查條件)。

相關問題