2009-09-25 27 views
1

我正在編寫數據庫應用程序,其中數據庫的某些部分可能需要基於時間的更新,而不是基於用戶操作。Django中的Cronjobs

例如,可能會每天更新某些值,並且必須更新的某些其他值必須在數據庫條目創建後四小時進行更新。

因此,我需要一些定期更新值的方法(每天更新數據庫的腳本)以及在未來特定時間更新值的方法(創建條目時,您需要運行四小時)。

數據庫將通過Web前端進行管理,因此我使用Django來設置數據庫和管理,因爲Django使得設計數據庫變得很快樂。但是,我不知道如何設置另一面,即在某些時候更新數據庫的一面。

你們會怎麼建議這樣做?運行python腳本並使用每日cronjob運行它足夠了,還是不是最佳實踐?這種事情是否經常進行?是否有工具/方法可以做到這一點?

我沒有這方面的經驗,我想知道它是如何通常在我進入並開始重新發明之前完成的。

回答

6

您可以設置一個管理任務(一個被稱爲與./manage.py <task name>)已經做了你所需要的。通過這種方式,您可以訪問您在項目中使用的所有設置,模型和內容。維護這樣的腳本也很容易。

+1

如果您有權將腳本放在cronjob中,我寧願這樣做。創建管理任務是Django的方式。您還可以從命令行手動運行命令獲得額外的好處。 – 2009-09-25 11:24:21

+0

絕對。這很容易做到: http://docs.djangoproject.com/en/dev/howto/custom-management-commands/ – DrBloodmoney 2009-09-25 15:13:16