gpt4 book ai didi

django - 在 aws elastic beanstalk 上运行 cron 作业 - django

转载 作者:行者123 更新时间:2023-12-04 19:00:26 24 4
gpt4 key购买 nike

我无法执行我的 cron 作业。

设置:

Django - 1.9

Elastic beanstalk - 运行 Python 3.4 的 64 位 Amazon Linux 2016.03 v2.1.3

到目前为止,我已经尝试了几种方法:

  • 使用 cron.yaml 文件:
    没有碰其他任何东西 - 只是在我的项目根文件夹中添加了一个 cron.yaml 文件

    version: 1
    cron:
    - name: "test"
    url: "http://website.com/workers/test"
    schedule: "*/10 * * * *"
  • 使用容器命令和单独的 cron.txt 文件:

  • 在我的 .ebextensions/development.config 文件中添加了这一行
    05_some_cron:
    command: "cat .ebextensions/crontab.txt > /etc/cron.d/crontab && chmod 644 /etc/cron.d/crontab"
    leader_only: true

    并在 .ebextensions/crontab.txt
    */10 * * * * source /opt/python/run/venv/bin/activate && python mysite/manage.py test

    该应用程序在这两种情况下都成功部署。
  • 手动(在浏览器中)转到 http://website.com/workers/test拥有
    预期的结果(在第一种情况下)。
  • 添加 source /opt/python/run/venv/bin/activate && python mysite/manage.py test作为管理命令在部署时运行正确的脚本一次。

  • 日志不会在该 url 上显示任何GETS。

    我究竟做错了什么?我是否错过了 EBS 上的某些流程步骤或某些设置步骤?

    另外,为 EBS 上托管的 django 应用程序运行 cron 作业的最佳方法是什么? - django 应用程序可以像尝试 2 那样从命令行运行管理命令,也可以像尝试 1 那样通过扩展 GET 或 POST url 来运行管理命令。

    最佳答案

    2018年更新使用 Django 2.0.6 + AWS ElasticBeanstalk + Cronjob

    我发现我需要使用 source/opt/python/current/env 导出 AWS 环境变量,以防止 manage.py 抛出错误“SECRET_KEY 设置不能为空”。

    这是因为我已经将我的 Django key 放在了 beanstalk 的 os.environ 中,默认情况下 shell/cron 似乎无法访问它。

    https://forums.aws.amazon.com/thread.jspa?threadID=108465

    我最终的 cron 作业 .txt 脚本如下。 (process_emails 是我自己的 django 管理函数 ,myjob.log 是记录函数调用输出的地方)。

    */15 * * * * source /opt/python/run/venv/bin/activate && cd /opt/python/current/app/ && source /opt/python/current/env && python manage.py process_emails >> /var/log/myjob.log 2>&1

    关于django - 在 aws elastic beanstalk 上运行 cron 作业 - django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38515859/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com