繁体   English   中英

如何在 aws 中将 .py 文件作为 cronjob 运行?

[英]How to run .py files as cronjob in aws?

我有一个 Django 应用程序,它部署到 Amazon Elastic Beanstalk(在 64 位 Amazon Linux 2/3.1.1 上运行的 Python 3.7)。 我一直在尝试将 .py 文件作为每天凌晨 4 点在 AWS 中工作的cronjob运行,并且我已将.config文件创建到.ebextensions中,如下所示。

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?

根据评论。

该问题是由task_process.sh失败引起的。 通常,如果task_process.sh失败,cron 不会显示错误消息。 为了帮助解决问题,您可以使用以下命令将所有输出重定向到文本文件:

exec &>> /tmp/cron_capture_log.txt

随后,EB 配置文件可能是:

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

            exec &>> /tmp/cron_capture_log.txt

            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"

以上有助于识别在 cron 中运行时task_process.sh问题。

暂无
暂无

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

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