我需要與命令調度更新Solr的指標:Django的芹菜調度manage.py命令
(env)$ ./manage.py update_index
我已經通過了芹菜文檔看了一下,發現上的調度信息,但沒有能夠找到一種方法來按計劃和virtualenv運行django管理命令。這會更好地運行在正常的cron上嗎?如果是的話,我將如何在virtualenv中運行它?任何人都有這方面的經驗?
感謝您的幫助!
我需要與命令調度更新Solr的指標:Django的芹菜調度manage.py命令
(env)$ ./manage.py update_index
我已經通過了芹菜文檔看了一下,發現上的調度信息,但沒有能夠找到一種方法來按計劃和virtualenv運行django管理命令。這會更好地運行在正常的cron上嗎?如果是的話,我將如何在virtualenv中運行它?任何人都有這方面的經驗?
感謝您的幫助!
要定期從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
我居然發現這樣用面料的一種很好的方式+芹菜,我現在正在處理它:
在app/tasks.py中,使用您需要的manage.py命令創建一個結構函數,然後用@periodic_task
修飾它,將它添加到您的芹菜s chedule,它應該是好的去。
更新:我無法真正使用Fabric + Celery,因爲在模塊中使用結構會導致它被識別爲結構文件,並且文件中的芹菜調用不起作用。
我最終這樣做,因爲我不能讓面料+芹菜一起玩。謝謝! – tzenderman