我通常不需要在我的 Django 应用程序级编程(即视图)中显式使用线程。但我注意到一个看起来很有趣的库,它通过线程处理服务器端分析。
在 Django 视图期间,您将使用他们的 Python 客户端在一个单独的(非守护程序)线程中将 HTTP POST 批量发送到他们的 Web 服务。通常,我会使用 RabbitMQ 来代替线程,但他们希望降低库的启动成本。
我的问题是,这种方法有什么缺点吗?线程有一些额外的内存占用,但我不太担心。这显然取决于启动的请求/线程数。
线程不是守护进程并且可能长时间运行的问题是否存在?我假设 Gunicorn 进程是执行的主线程,并且它在无限循环中运行,因此它是否必须等待非守护线程退出通常并不重要。那是对的吗?
有点悬而未决的问题,但重点是了解非守护线程在 Django/Gunicorn 应用程序中的影响。