2012-06-06 34 views
3

我想在我的django項目上運行定期任務,但我不希望在我的項目中捆綁芹菜/ django-芹菜(與celerybeat)的所有複雜性。Cron-like調度程序,cron和芹菜之間的東西

我也想存儲配置的時間和在我的SCM中運行的命令。

我的生產機器運行Ubuntu 10.04。

雖然我可以學習和使用cron,但我覺得應該有更高級別(用戶友好)的方式來做到這一點。 (很像UFW是iptables)。

有沒有這樣的事情?任何提示/建議?

謝謝!

+0

[sched](http://docs.python.org/library/sched.html)+ multiprocessing?或者[APScheduler](http://packages.python.org/APScheduler)? – brandizzi

+1

有什麼比使用cron更容易?您也可以將您的crontab文件存儲在您的版本控制系統中。 –

+0

@brandizzi:謝謝! APScheduler看起來很棒,這是我將來可能會用到的東西。現在,我想簡單的事情就是堅持使用cron。 – Tiago

回答

1

我個人認爲,我會學習如何使用cron。這個過程不會超過5到10分鐘,而且在Linux服務器上工作時這是一個必不可少的工具。

你可以做的是建立一個cronjob,每分鐘請求你的django實例的一個頁面,並讓django腳本根據數據庫中存儲的配置確定它是什麼時間以及需要做什麼。這是我在其他類似應用程序中看到的方法。

+0

我同意你的第一段,但第二段似乎非常低效。爲什麼不在特定的時間讓cron調用某些自定義管理命令?您甚至可以從Django內部生成並安裝crontab文件。 –

+0

是的,這是我的「保持cron配置簡單」的方法,如果你不習慣cron可能會更好。從django生成crontab也是我的首選方法,但它有點複雜(權限,接受用戶輸入等安全考慮)等 – niko

+0

我其實很喜歡這個建議。我幾乎不會打電話要求單個視圖,並且每分鐘查詢數據庫效率低下...... – dgel

2

有幾個基於Django的調度應用程序,例如django-chronographdjango-chronikerdjango-cron。我將django計時碼錶分成了django-chroniker,以修復一些錯誤並將其擴展爲我自己的用例。我仍然在一些項目中使用芹菜,但正如你指出的那樣,它有點過於複雜,並且有一大堆。

+0

謝謝,Cerin!在github上觀看你的回購,可能會跟它一起。 – Tiago