【发布时间】:2021-01-13 17:25:41
【问题描述】:
我有一个 Django 应用程序,它已部署到 Amazon Elastic Beanstalk(在 64 位 Amazon Linux 2/3.1.1 上运行的 Python 3.7)。我一直在尝试以cronjob 的形式运行一个 .py 文件,该文件每天凌晨 4 点在 AWS 中工作,我已经在 .ebextensions 中创建了一个 .config 文件,如下所示。
cron.config 文件:
files:
"/etc/cron.d/cron_process":
mode: "000644"
owner: root
group: root
content: |
0 4 * * * root /usr/local/bin/task_process.sh
"/usr/local/bin/task_process.sh":
mode: "000755"
owner: root
group: root
content: |
#!/bin/bash
date > /tmp/date
source /var/app/venv/staging-LQM1lest/bin/activate
cd /var/app/current
python Bot/run_spiders.py
exit 0
commands:
remove_old_cron:
command: "rm -f /etc/cron.d/cron_process.bak"
run_spiders.py 文件:
from first_bot.start import startallSpiders
from .models import Spiders
import importlib
test = Spiders.objects.get(id=1)
test.spider_name = "nigdehalk"
test.save()
我正在尝试更改我的一个对象的属性以进行测试,但它不起作用。我错过了什么吗?如何创建这个 cronjob?
【问题讨论】:
-
“它不起作用”不是很具体。为什么它不起作用?任何错误、超时、意外行为?
-
我没有收到任何错误或超时等。但是我的 spider_name 是“nigde”并且它没有更新。
-
也许你的
task_process.sh崩溃了。您可以添加exec &>> /tmp/cron_capture_log.txt来记录其输出,如here 所示。也许它会有一些关于任何错误的信息,如果有的话? -
非常感谢。我得到了 txt 的所有回报,现在我将修复所有错误。
-
当然,请这样做
标签: python django amazon-web-services cron