Django crontab没有使用弹性豆茎

时间:2017-08-26 09:10:35

标签: python django cron elastic-beanstalk

我的cron作业在localhost上正常工作,但是当我部署时,它们没有被添加。 以下settings.py:

CRONJOBS = [
('*/1 * * * *', 'push.cron.my_scheduled_job')

] 在开发过程中,cron完美地完成了这项工作:

  1. python manage.py crontab add
  2. python manage.py crontab run 2e847f370afca8feeddaa55d5094d128
  3. 但是当我使用..将它部署到服务器时,cron作业不会自动添加。如何将crob作业添加到服务器?

2 个答案:

答案 0 :(得分:0)

找到答案:

  1. 打开您的EC2 ssh并输入以下命令:source /opt/python/run/venv/bin/activate
  2. cd/opt/python/current/app/
  3. python manage.py crontab add
  4. python manage.py crontab run <hashcode>

答案 1 :(得分:0)

我刚刚设法解决了这个问题。

首先,我将脚本编写为“ Django自定义管理命令”。

然后我建立了一个SSH连接,该连接从目录“ / home / ec2-user”开始,并输入“ crontab -e”来编辑crontab。

在crontab文件中,只需添加以下行(用您自己的文件替换MY_CUSTOM_MANAGEMENT_COMMAND):

          • source / opt / python / run / venv / bin / activate && python manage.py MY_CUSTOM_MANAGEMENT_COMMAND

然后您就完成了。

您没有在问题中提及,但是我想指出一点,因为我已经在一些知名的博客中看到了:您不需要工作层,crontab可以正常工作在Web服务器层中。如果您需要大量的后台处理,请使用工作层。