Python Gunicorn:多个后台工作线程

Python Gunicorn:多个后台工作线程,python,multithreading,gunicorn,Python,Multithreading,Gunicorn,设置:我的应用程序使用多个辅助进程并行处理元素。处理这些元素是CPU密集型的,所以我需要辅助进程。应用程序将通过烧瓶API和GUnicorn使用。GUnicorn本身有多个工作进程来并行处理请求。在FlaskAPI中,请求数据被放入一个队列中,后台应用程序的工作进程从该队列中获取该数据 问题:分叉工作进程非常耗时,应用程序必须满足一定的速度要求。因此,我希望在应用程序启动时生成后台工作进程。为了避免混合结果,我需要为每个GUnicorn工作人员提供n后台工作进程 问题:如何确定在施工期间我必须产

设置:我的应用程序使用多个辅助进程并行处理元素。处理这些元素是CPU密集型的,所以我需要辅助进程。应用程序将通过烧瓶API和GUnicorn使用。GUnicorn本身有多个工作进程来并行处理请求。在FlaskAPI中,请求数据被放入一个队列中,后台应用程序的工作进程从该队列中获取该数据

问题:分叉工作进程非常耗时,应用程序必须满足一定的速度要求。因此,我希望在应用程序启动时生成后台工作进程。为了避免混合结果,我需要为每个GUnicorn工作人员提供
n
后台工作进程

问题:如何确定在施工期间我必须产生多少背景工人,以及如何将这些工人与GUnicorn工人联系起来

方法:通过导入
workers
变量,我可以从
GUnicorn\u config.py
读取GUnicorn worker的数量。但是,此时,我不知道GUnicorn工作进程ID。他们是否有我现在可以使用的内部ID(例如,GUnicorn worker#1,…)

您需要知道(并说明)GUnicorn worker可以随时停止(例如,由于请求处理程序崩溃或处理超时)。所以这意味着,您的特定工作人员到特定gunicorn流程的硬连线不能是永久性的

如果要将您的工作程序链接到特定的gunicorn工作程序,则应在每次重新启动gunicorn工作程序时重新链接

一种方法是定义自己的和/或这样做


最初,您可以启动所需数量的工作程序,然后处理程序可以将它们“借用”(或您称之为“链接”)到刚刚创建的工作程序。

谢谢您的建议。看起来很有希望。在其中一个服务器钩子中创建和启动我的工作人员也有意义吗?如果我将它们设置为deamon模式,当创建它们的GUnicorn工作人员崩溃时,这些工作人员会停止吗?