微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django:立即在后台运行任务

如何解决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 举报,一经查实,本站将立刻删除。