2013-07-15 41 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,因为在模块中使用结构会导致它被识别为结构文件,并且文件中的芹菜调用不起作用。