Python Django:立即在后台运行任务

Python Django:立即在后台运行任务,python,django,background-task,Python,Django,Background Task,与此类似,我不理解django后台任务模块是如何工作的。我想要的是有一个按钮,可以在后台启动任务,这样它就不会阻塞前端。该任务必须在单击发生后立即运行 阅读时,我认为我只需要将我的任务定义为一个函数,该函数前面有decorator@background(schedule=1),然后调用该函数将在单击处理程序运行一秒钟后启动任务 正常调用notify_user将计划从现在起60秒后运行原始功能: 然而,事实并非如此。发生的情况是,每次单击后都会创建一个新任务(我可以通过请求后台任务数据库来理解这一

与此类似,我不理解django后台任务模块是如何工作的。我想要的是有一个按钮,可以在后台启动任务,这样它就不会阻塞前端。该任务必须在单击发生后立即运行

阅读时,我认为我只需要将我的任务定义为一个函数,该函数前面有decorator
@background(schedule=1)
,然后调用该函数将在单击处理程序运行一秒钟后启动任务

正常调用notify_user将计划从现在起60秒后运行原始功能:

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

命令
python manage.py process\u tasks
似乎在停止之前运行前面定义的一个任务。如果尚未定义任务,则它将等待定义任务的时间最长为
持续时间
秒(在运行命令时指定)。这种行为不是我在阅读文章时所期望的

持续时间-将任务运行这么多秒(0或更少以永远运行)-默认值为0

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


命令每次运行只运行一个任务这一事实让我很不安,如果我定义1000个小任务在一分钟内在后台运行,该命令会跟上吗?

您必须使用django后台任务吗?我最初尝试为每个任务生成一个进程,但在尝试强制停止某些任务时遇到问题(使用信号),因为我最终遇到了一些僵尸进程。django后台任务似乎是一个可以让我做我想做的事情的模块。我不必使用这个模块,事实上,如果有人知道更好的方法来做我想做的事情,请随意分享,我会非常感激。好的,那就用芹菜吧。这是一个教程,你可以用c见鬼,芹菜要好得多,任务可以按照你的意愿立即开始。