django-background-tasks 管理命令未在 AWS elasticbeanstalk 上运行
Posted
技术标签:
【中文标题】django-background-tasks 管理命令未在 AWS elasticbeanstalk 上运行【英文标题】:django-background-tasks management command not running on AWS elasticbeanstalk 【发布时间】:2021-03-23 17:53:58 【问题描述】:问候各位程序员, 我目前正在使用 django-background-tasks(https://django-background-tasks.readthedocs.io/en/latest/) 在 AWS elasticbeanstalk 上运行一些后台任务。我最初在主 .config 容器命令中使用此命令,但在部署中出现超时错误,因为此管理命令永远不会完成(它会继续运行)。 现在,我正在尝试使用建议的方法在 elasticbeanstalk(https://aws.amazon.com/premiumsupport/knowledge-center/cron-job-elastic-beanstalk/) 上运行 cron 作业。请看一下我的代码,它没有运行命令。请问有什么问题?我只需要命令 python manage.py process_tasks 继续运行。这在我的本地机器上正常工作,因为我可以轻松打开另一个终端来启动 python manage.py process_tasks 命令
files:
"/etc/cron.d/process_tasks_cron":
mode: "000644"
owner: root
group: root
content: |
* * * * * root /usr/local/bin/99_process_tasks.sh
"/usr/local/bin/99_process_tasks.sh":
mode: "000755"
owner: root
group: root
content: |
#!/bin/bash
date > /tmp/date
# Your actual script content
source /var/app/venv/*/bin/activate
python manage.py process_tasks
commands:
remove_old_cron:
command: "rm -f /etc/cron.d/*.bak"
【问题讨论】:
【参考方案1】:这是代码的工作版本。谢谢,希望它可以帮助那里的人。
files:
"/etc/cron.d/cron_process":
mode: "000644"
owner: root
group: root
content: |
* * * * * root /usr/local/bin/task_process.sh
"/usr/local/bin/task_process.sh":
mode: "000755"
owner: root
group: root
content: |
#!/bin/bash
exec &>> /tmp/cron_capture_log.txt
date > /tmp/date
source /var/app/venv/staging-LQM1lest/bin/activate
cd /var/app/current
python manage.py process_tasks
commands:
remove_old_cron:
command: "rm -f /etc/cron.d/cron_process.bak"
【讨论】:
以上是关于django-background-tasks 管理命令未在 AWS elasticbeanstalk 上运行的主要内容,如果未能解决你的问题,请参考以下文章
使用 Prometheus 观察 django-background-tasks 指标