我需要使用以下命令按计划更新 solr 索引:
(env)$ ./manage.py update_index
我已经浏览了 Celery 文档并找到了有关调度的信息,但无法找到一种方法来按计划和在 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
定时盘:
MAILTO=webmaster@website.com
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
关于Django Celery 调度 manage.py 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17664166/