[英]Django crontab not working in elastic beanstalk
我的 cron 作业在 localhost 上运行良好,但是当我部署时它们没有被添加。 以下设置.py:
CRONJOBS = [
('*/1 * * * *', 'push.cron.my_scheduled_job')
] 在开发中,cron 通过这样做可以完美地工作:
但是当我使用..将它部署到服务器时,cron 作业不会自动添加。 如何将 crob 作业添加到服务器?
您在 localhost 上运行的 cron 作业与您的服务器无关。 您将需要以与在本地运行的方式几乎相同的方式分别运行它们。
## I am assuming that you already activated your virtual env
python manage.py crontab add #returns a hash
python manage.py crontab run "hash" # put the has here without quotes
您可以通过编写和运行某种 bash 脚本来实现自动化。
如果你想要一些自动化,我会建议你使用celery-beat而不是 crontab。
我只是设法让这个工作。
首先,我将脚本编写为“Django 自定义管理命令”。
然后我建立了一个SSH连接,从目录“/home/ec2-user”开始,输入“crontab -e”来编辑crontab。
在 crontab 文件中,只需添加以下行(将 MY_CUSTOM_MANAGEMENT_COMMAND 替换为您自己的文件):
然后你就完成了。
你没有在你的问题中提到,但我想指出一些事情,因为我在一些著名的博客中看到过:你不需要一个工人层,crontab 在网络上工作得很好服务器层。 如果您有一些繁重的后台处理,请使用工作层。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.