gpt4 book ai didi

django - 如何激活 "django-background-tasks"中的进程队列

转载 作者:行者123 更新时间:2023-12-02 06:08:50 36 4
gpt4 key购买 nike

我是 Django 新手,并且 django-background-tasks包。

我面临一个问题,除非我强制运行命令 process_tasks ,即 python manage.py process_tasks ,否则我无法执行/启动后台任务。我想在不运行 process_tasks 命令的情况下执行/启动后台任务。

settings.py

MAX_ATTEMPTS=1
BACKGROUND_TASK_RUN_ASYNC = True

tasks.py

from background_task import background
#included necessary packages for SMTP
@background(schedule=5)
def test():
#send mail to some ids

views.py

def index(request):
test(schedule=5)
return HttpResponse("Hello, world. ")

忽略我的逻辑。

最佳答案

如果其他人试图让它工作 - 我从我的 Dockerfile 调用一个 shell 脚本,然后运行两个命令。一种用于启动网络服务器(gunicorn 或 run_server),另一种用于运行 manage.py process_tasks 进程。重要的是将 process_tasks 进程作为后台任务运行。

在我的 Dockerfile 底部有:CMD ["./run_app.sh"]

我的 run_app.sh 文件如下所示:

#!/usr/bin/env bash

# start background tasks
python manage.py process_tasks &

gunicorn --workers=3 app.wsgi -b 0.0.0.0:8080

请注意进程任务命令中的尾随 &。这使得 shell 脚本能够继续处理并运行 Gunicorn 命令。

希望这对某人有帮助。

关于django - 如何激活 "django-background-tasks"中的进程队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41205607/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com