Python 当请求传入时,apache如何运行应用程序?

Python 当请求传入时,apache如何运行应用程序?,python,apache,Python,Apache,我有一个运行在apache2上的python web应用程序,该应用程序使用mod_wsgi部署。应用程序有一个持续运行的线程。此线程是ZeroMQ线程,正在侦听循环中的端口。应用程序未维护会话。现在,如果我打开浏览器并向apache服务器发送请求,那么数据将第一次被接受。现在,当我第二次发送请求时,它显示内部服务器错误。当我检查错误日志文件进行回溯时,它显示了ZMQError:-已在使用的地址 apache是否会在从浏览器发送的每个请求上重新加载应用程序,以便每次都创建ZeroMQ线程并分配端

我有一个运行在apache2上的python web应用程序,该应用程序使用mod_wsgi部署。应用程序有一个持续运行的线程。此线程是ZeroMQ线程,正在侦听循环中的端口。应用程序未维护会话。现在,如果我打开浏览器并向apache服务器发送请求,那么数据将第一次被接受。现在,当我第二次发送请求时,它显示内部服务器错误。当我检查错误日志文件进行回溯时,它显示了ZMQError:-已在使用的地址


apache是否会在从浏览器发送的每个请求上重新加载应用程序,以便每次都创建ZeroMQ线程并分配端口,但由于端口已分配,因此显示错误

看起来您的应用程序正在使用zmq绑定到某个端口

正如您已经怀疑的那样,每个请求都可以作为独立的进程运行,从而在访问要绑定的端口时相互竞争

可以有所谓的worker,每个worker运行一个处理http/wsgi请求的进程,每个worker都试图绑定


您应该重新设计应用程序,使其不使用绑定,而是连接,这可能需要另一个具有zeromq的进程来为您的应用程序提供服务(但最后一行取决于您在应用程序中所做的操作)。

由于上面列出的一些原因,zeromq线程通常在web服务器的上下文之外运行,它应该作为自己的服务运行吗?