繁体   English   中英

Django crontab 在弹性 beantalk 中不起作用

[英]Django crontab not working in elastic beanstalk

我的 cron 作业在 localhost 上运行良好,但是当我部署时它们没有被添加。 以下设置.py:

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

] 在开发中,cron 通过这样做可以完美地工作:

  1. python manage.py crontab 添加
  2. python manage.py crontab 运行 2e847f370afca8feeddaa55d5094d128

但是当我使用..将它部署到服务器时,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 替换为您自己的文件):

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

然后你就完成了。

你没有在你的问题中提到,但我想指出一些事情,因为我在一些著名的博客中看到过:你不需要一个工人层,crontab 在网络上工作得很好服务器层。 如果您有一些繁重的后台处理,请使用工作层。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM