Django:立即在后台运行任务

问题描述

this question 类似,我不明白 django-background-tasks 模块是如何工作的。我想要的是有一个按钮可以在后台启动任务,这样它就不会挡住前面。任务必须在点击发生后立即运行。

阅读 docs 我认为我只需将我的任务定义为装饰器 @background(schedule=1) 前面的函数,然后调用函数将在点击处理程序运行后一秒钟启动任务。

正常调用 notify_user 将安排原始函数从现在开始运行 60 秒:

然而事实并非如此。发生的情况是每次点击后都会创建一个新任务(由于 this answer,我可以通过请求 background_task 数据库来理解这一点),但没有运行过。

命令 python manage.py process_tasks 似乎在停止之前运行了先前定义的一项任务。如果尚未定义任何任务,则它等待定义的任务最多 duration 秒(在运行命令时指定)。这种行为不是我在阅读 documentation 时所期望的。

duration - 运行任务这么多秒(0 或更少以永远运行) - 认为 0

我不认为创建一个每秒调用 python manage.py process_tasks 的 crontab 是相关的,这是否意味着我必须自己手动调用命令以便它在我想要的时候运行?该命令不是应该始终运行以便在计划运行时处理所有任务吗?

命令每次运行只运行一个任务的事实让我很烦恼,如果我定义 1000 个小任务在一分钟内在后台运行,命令会赶上吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)