Python Gunicorn的工人_出口
我正在使用部署Django应用程序 util.py中定义了一个全局单例变量:Python Gunicorn的工人_出口,python,django,python-3.x,gunicorn,multiple-processes,Python,Django,Python 3.x,Gunicorn,Multiple Processes,我正在使用部署Django应用程序 util.py中定义了一个全局单例变量: global SNS_PRODUCERS SNS_PRODUCERS = {} def close_producers(): logger.info('Closing all producers...') global SNS_PRODUCERS for name, producer in SNS_PRODUCERS.items(): producer.close() 当我的应
global SNS_PRODUCERS
SNS_PRODUCERS = {}
def close_producers():
logger.info('Closing all producers...')
global SNS_PRODUCERS
for name, producer in SNS_PRODUCERS.items():
producer.close()
当我的应用程序关闭时,我想呼叫close\u producer
。我将以下内容添加到:
我的理解是,有一个主进程,多个工作进程从主进程派生出来。在每个进程中,util.py
被导入到此进程。因此,在这些流程中有多个SNS_生产者
,在一个工人或主流程中有一个SNS_生产者
每个辅助进程都有自己的挂钩。主进程有自己的钩子
当一个工作进程关闭时,调用它的worker\u exit
,然后关闭它自己的SNS\u生产者
。其他的SNS_生产商仍在营业
我说得对吗?欢迎任何更正
def child_exit(server, worker):
# Join background threads in util.SNS_PRODUCERS
try:
from util import close_producers
close_producers()
except:
pass
def worker_exit(server, worker):
try:
from util import close_producers
close_producers()
except:
pass