我正在编写一个 Django 应用程序,它需要执行长时间的异步任务。最初的想法是从执行该工作的视图启动一个子流程,并在另一个视图中监视进度。
当应用程序通过以下方式启动时,这个想法运行良好manage.py runserver
,但是当它在 uwsgi 下运行时则不会。子进程启动了,但是视图返回后uwsgi等待子进程结束,这打破了整个想法。
我可以在 uwsgi 日志中看到请求详细信息(生成的字节数等),但套接字未关闭,因此浏览器也会等待。
我已经看到了运行异步任务的其他替代方案,例如celery,但到目前为止,我花在尝试配置 celery 上的时间比花在该任务上的时间还多。如果还有其他方法,我很高兴听到您是如何解决的。
http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html
--close-on-exec 是你所需要的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)