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 指标

是否可以使用 django-background-task 将函数置于定时循环中

Django后台任务等待结果

访管指令的由来

如何选择最适合的MOS管驱动电路?

求助H桥MOS管电路驱动电路问题