我正在编写一个 Django 应用程序,它需要执行长时间的异步任务。最初的想法是从执行该工作的视图开始一个子流程,并在另一个视图中监视进度。
当应用程序通过 启动时,这个想法很有效manage.py runserver
,但在 uwsgi 下运行时就不行了。子进程启动了,但是视图返回后uwsgi等待子进程结束,这就打破了整个思路。
我可以在 uwsgi 日志中看到请求的详细信息(生成的字节数等),但是套接字没有关闭,所以浏览器也在等待。
我已经看到了运行异步任务的其他替代方案,例如 celery,但到目前为止,我尝试配置 celery 的时间比我为该任务花费的时间还多。如果有任何其他方法,我会很高兴听到你如何解决它。