Python Gunicorn的工人_出口

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() 当我的应

我正在使用部署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()
当我的应用程序关闭时,我想呼叫
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