一尘不染

在Django中启动后台任务的简单方法

django

我有一个Django网站,并且一个页面上有一个按钮(或链接),单击该按钮将启动一个运行时间较长的任务。显然,我想将此任务作为后台任务启动,并立即将结果返回给用户。我想使用一种简单的方法来实现此目的,该方法不需要我安装和学习例如Celery这样的全新消息传递体系结构。我不想用celery!我只想使用一种简单的方法,就可以在接下来的半小时左右的时间内进行设置并开始运行。在Django中没有添加(又要添加)第三方软件包的简单方法吗?


阅读 2250

收藏
2020-03-31

共2个答案

一尘不染

如果你愿意安装第3方库,但是想要比Celery简单得多的东西,请查看Redis Queue。它确实需要Redis,这本身很容易,但是也可以提供很多其他好处。

RQ本身几乎具有零配置。非常简单。

2020-03-31
一尘不染

只需使用一个线程。

import threading

t = threading.Thread(target=long_process,
                            args=args,
                            kwargs=kwargs)
t.setDaemon(True)
t.start()
return HttpResponse()
2020-03-31