2013-07-15 61 views
3

我需要與命令調度更新Solr的指標:Django的芹菜調度manage.py命令

(env)$ ./manage.py update_index 

我已經通過了芹菜文檔看了一下,發現上的調度信息,但沒有能夠找到一種方法來按計劃和virtualenv運行django管理命令。這會更好地運行在正常的cron上嗎?如果是的話,我將如何在virtualenv中運行它?任何人都有這方面的經驗?

感謝您的幫助!

回答

0

要定期從cron作業運行命令,只需將該命令包裝在加載virtualenv的bash腳本中。例如,下面就是我們要做的運行manage.py命令:

django_cmd.sh:

#!/bin/bash 

cd /var/www/website/ 
source venv/bin/activate 
/var/www/website/manage.py $1 --settings=$2 

的crontab:

[email protected] 
SETTINGSMODULE=website.settings_prod 
5 * * * * /var/www/website/django_cmd.sh update_index $SETTINGSMODULE >> /dev/null 
0 10 * * * /var/www/website/django_cmd.sh update_accounts $SETTINGSMODULE 
+0

我最終這樣做,因爲我不能讓面料+芹菜一起玩。謝謝! – tzenderman

0

我居然發現這樣用面料的一種很好的方式+芹菜,我現在正在處理它:

在app/tasks.py中,使用您需要的manage.py命令創建一個結構函數,然後用@periodic_task修飾它,將它添加到您的芹菜s chedule,它應該是好的去。

更新:我無法真正使用Fabric + Celery,因爲在模塊中使用結構會導致它被識別爲結構文件,並且文件中的芹菜調用不起作用。