RT
自己写的一个模块,封装了一下PyFetion,目的是尽量保持飞信可用,再就是方便点。
在模块初始化的时候创建线程,登录,然后不停的查询数据库看是否有信息要发送。
后来发现很不稳定,看了下log
[Sun Sep 26 19:59:36 2010] [warn] child process 12374 still did not exit, sending a SIGTERM
Error in my_thread_global_end(): 1 threads didn't exit
[Sun Sep 26 19:59:38 2010] [notice] caught SIGTERM, shutting down
[Sun Sep 26 20:02:24 2010] [notice] Apache/2.2.14 (Ubuntu) PHP/5.3.2-1ubuntu4.5 with Suhosin-Patch mod_ssl/2.2.14 OpenSSL/0.9.8k mod_wsgi/2.8 Python/2.6.5 configured -- resuming normal operations
[Sun Sep 26 20:02:46 2010] [error] <SupervisorThread(SupervisorThread, started 140184746718992)> ('construct...',)
[Sun Sep 26 20:02:49 2010] [error] <SupervisorThread(SupervisorThread, started 140184746718992)> ('login...',)
[Sun Sep 26 20:02:54 2010] [error] <MessageThread(MessageThread, started 140184645531408)> ('message round',)
......
[Sun Sep 26 20:02:59 2010] [error] <SendSMSThread(SendSMSThread, started 140184637138704)> ('nomsg',)
[Sun Sep 26 20:03:04 2010] [error] <SendSMSThread(SendSMSThread, started 140184637138704)> ('nomsg',)
.......
[Sun Sep 26 20:03:24 2010] [error] <SupervisorThread(SupervisorThread, started 140184746718992)> ('construct...',)
[Sun Sep 26 20:03:24 2010] [error] <HeartbeatThread(HeartbeatThread, started 140184721078032)> ('beat~',)
[Sun Sep 26 20:03:24 2010] [error] <SendSMSThread(SendSMSThread, started 140184637138704)> ('nomsg',)
[Sun Sep 26 20:03:24 2010] [error] <HeartbeatThread(HeartbeatThread, started 140184721078032)> ('beat done',)
怎么又开始初始化了呢?
后来发现是因为apache的prefork模式。在fork之前每个单独的进程都认为那个module没有初始化,于是就初始化了,导致n个进程同时登录。
现在在想,到底是把飞信做成webservice,还是干脆改用worker模式。
分享到:
相关推荐
Apache的prefork模式和worker模式该户.docx
apache2-prefork 64位快速安装包
主要介绍了Apache Prefork、Worker和Event三种MPM详解,着重介绍了配置参数部分,需要的朋友可以参考下
Linux 下apache2-prefork-2.2.22-i586.rpm 快速安装包
apache常用的工作模式有prefork和worker模式。运行命令httpd -l 或者apache2 -l ,输出的结果中如果含有prefork.c,那就是prefork模式,如果结果中含有worker.c,那就是worker模式。 知道模式之后我们可以在apache的...
apache关于最大连接的优化.关于prefork和worker模块的.
包括配置文件、模块化结构、多任务并发,以及网络连接和请求读取,其中多任务并发体系结构是《Apache源代码全景分析第1卷:体系结构与核心模块》分析的重点,讨论了Prefork、Worker及WinNT三种MPM。《Apache源代码...
包括配置文件、模块化结构、多任务并发,以及网络连接和请求读取,其中多任务并发体系结构是《Apache源代码全景分析第1卷:体系结构与核心模块》分析的重点,讨论了Prefork、Worker及WinNT三种MPM。《Apache源代码...
Apache的两种工作模式: prefork模式: 使用多个子进程,每个子进程只包含一个线程 特点:效率高,内存使用率高 worker模式 使用多个子进程,每个子进程包含多个线程 特点:内存使用率低,一个线程崩溃,整个...
查看apache连接的连接并发数 查看httpd进程数(即prefork模式下Apache能够处理的并发请求数)
多路处理模块(MPM) Apache2.0新特性概述 Apache 2.2 新特性概述 配置段(容器) 服务器全局配置 站点导航 停止和重启 suEXEC支持 致谢与译者声明 从2.0升级到2.2 从1.3升级到2.0 从URL到文件系统的映射 Apache 1.3 API...
prefork模式使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下...
Apache优化步骤: ...本文是对512M 内存并装有apache的vps进行优化,请不要跟我说装nginx就强多了,确实如此,但是你这样说的话,这篇文章就没什么意义了,哈哈。那么进入正题吧! 操作系统(linux):C
mod_realdoc是一个Apache模块,它在docroot符号链接上执行realpath,并将绝对路径设置为请求其余部分的真实文档根目录。 Apache读取完客户端的请求后,它将立即执行。 可以使用以下命令在httpd.conf中调整实际路径...
阿帕奇 在GNU / Linux,FreeBSD和Windows OS上设置和配置Apache HTTP服务器的公式。 目录请参阅完整的。... 在Debian mpm_prefork , mpm_worker或mpm_event上配置apache mpm模块(仅Debian) 启用了Apache模
mod_R:Apache 2.0模块,该模块实现粘合以加载R解释器。 libapreq 2.0.4:Apache赞助的项目,用于解析请求输入。 如果您不想编译和安装此版本,则可以指定在配置过程中使用哪个libapreq2库。 最新版本 最新版本的...
资源分类:Python库 所属语言:Python 资源全名:py-prefork-server-0.5.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该... 根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还得为系统预留
RHEL6,RHEL7启用交换启用iptables修改SSH服务端口使用OpenSSL 1.1.1构建的Nginx / 1.16.1 Apache2.2.34工作模式为PreforkMPM(最终版本2.2.34已于2017年7月发布) Apache2.4工作模式为Event MPM(编译全部Prefork,...