我有一个Django网站,并且一个页面上有一个按钮(或链接),单击该按钮将启动一个运行时间较长的任务。显然,我想将此任务作为后台任务启动,并立即将结果返回给用户。我想使用一种简单的方法来实现此目的,该方法不需要我安装和学习例如Celery这样的全新消息传递体系结构。我不想用celery!我只想使用一种简单的方法,就可以在接下来的半小时左右的时间内进行设置并开始运行。在Django中没有添加(又要添加)第三方软件包的简单方法吗?
如果你愿意安装第3方库,但是想要比Celery简单得多的东西,请查看Redis Queue。它确实需要Redis,这本身很容易,但是也可以提供很多其他好处。
RQ本身几乎具有零配置。非常简单。
只需使用一个线程。
import threading t = threading.Thread(target=long_process, args=args, kwargs=kwargs) t.setDaemon(True) t.start() return HttpResponse()