tha*_*all 5 python django cron amazon-web-services amazon-elastic-beanstalk
我正在 Elastic Beanstalk 上运行一个小型 Django Web 应用程序。它使用django-background-tasks来运行一些异步任务。这在本地工作,因为我可以运行python manage.py process_tasks来运行任务。
但是,在部署到 Elastic Beanstalk 后,我在让它按预期工作时遇到了更多的麻烦。我设法通过在我的.ebextensions文件夹中包含这个“99_process_tasks.config”文件来让它工作(基于AWS 文档中的这个链接):
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
source /opt/python/run/venv/bin/activate
cd /opt/python/current/app
python manage.py process_tasks
commands:
remove_old_cron:
command: "rm -f /etc/cron.d/*.bak"
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为异步任务按预期运行并执行它们的代码。
但是,作为该领域的新手(尤其是在 cron 方面),我怀疑这可能并没有完全按照我的意愿行事,因为我设想这会导致python manage.py process_tasks每分钟运行一个新命令。我真正想做的是只运行一次命令(或者确保它在不再运行时运行)。我尝试使用@reboot,这似乎是我想要的,但是当我进行此更改时,任务根本不再执行。
我应该运行不同的 cron 命令,还是完全不同的命令?我应该在这里采取一些额外的步骤吗?
| 归档时间: |
|
| 查看次数: |
717 次 |
| 最近记录: |