2

我知道关于这个主题已经回答了很多问题,但没有一个有效。使用apache2.2、和。mod_wsgi 3.3_ _python 2.7.3django 1.4centos6.2

我尝试启动我的代码表单 urls.py,它随机执行多次,并在启动完成后随机执行。接下来我尝试使用此处解释的中间件技巧Where to put Django startup code? 启动代码也随机执行了多次(打印出一些调试消息,多次看到相同的消息)。

问题是,我希望有一个global TCP Client,与 TCP Server 连接和通信。它应该只初始化一次,如果它随机创建新实例旧连接将丢失,谁知道何时销毁,并且当操作系统内存不足时该套接字可能会被销毁(不确定)。所以目标是拥有一个global TCP Client,被所有触发 TCP 客户端函数的函数使用,例如Connect/Disconnect/Send/Receive.

有某种 apache 或mod_wsgi选项吗?我在 Windows 7 上运行相同的配置,一切正常。

4

1 回答 1

1

必须使用以下几行修改 apache httpd.conf: WSGIDaemonProcess site-1 threads=15

WSGIProcessGroup site-1

基本上 django 在多个进程和线程中运行。为了使全局 TCP 客户端线程安全,锁定对象threading.Lock()很有帮助。还创建了 TcpClient 作为单例,以防万一。

于 2012-09-17T14:39:27.713 回答