我正在编写一个Django应用程序,它需要执行长异步任务。最初的想法是从执行该任务的视图启动子流程,并在其他视图中监视进度。
当应用程序通过manage.py runserver
启动时,这个想法可以很好地工作,但当它在uwsgi下运行时就不行了。子进程已经启动,但是在视图返回uwsgi之后,它会等待子进程结束,这会破坏整个想法。
我可以在uwsgi日志中看到请求的详细信息(生成的字节数等),但是套接字没有关闭,所以浏览器也会等待。
我看到了运行异步任务的其他替代方法,例如芹菜,但是到目前为止,我花在配置芹菜上的时间比花在该任务上的时间还多。如果有别的办法,我很高兴听到你是怎么解决的。
http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html
--关闭exec是您需要的
我找到了一个很好的替代方案:https://github.com/ui/django-rq,它很容易安装和配置,而且工作正常。
不过,子流程的原始问题仍然不清楚。
相关问题 更多 >
编程相关推荐