我需要与命令调度更新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