V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  chaosue  ›  全部回复第 1 页 / 共 1 页
回复总数  2
2016-03-10 17:23:50 +08:00
回复了 nilai 创建的主题 PHP workerman 这个 php 级的 socket 服务器框架 大家有了解过吗?
@zhengkai 其实 wokerman 的作用不仅仅只是提供了一个可运行的 socket 服务那么简单。

为什么 java 的 service/web 要用 tomcat 类的(java 开发)的服务容器 而不同 nginx + fcgi 的方案。

同样地, php 的 service 运行在 workerman 上,在语言特性上无缝整合,各个层上的对象都是 native 的,可共享和操作, workerman 层即可捕捉业务代码的异常,进行统一处理、汇报、统计。这里只提其中的一点优势,新特性和新系统需求的开发效率那些就不重述了。 其它的再经过实际的中大规模开发、合作、运行后自然能体会到。 当然,一般的业务 coder 可能不用去思考这方面,大多都是人云亦云,再和自己的某些经验对号入座,自然形成不同的认识。
2016-03-10 16:53:48 +08:00
回复了 nilai 创建的主题 PHP workerman 这个 php 级的 socket 服务器框架 大家有了解过吗?
@ugg 运行在类似 workerman php 服务框架中的 mysql (包括 redis 、 mc )等,自然都是长连接,不需使用 pconnect, 因为这里不象 fpm(cgi)会回收所有资源。 而且长连接和 last insert id 没什么必然关系, 业务代码在进行 insert 之后,如果需要 last insert id 后,自然会去取出。每个请求进来,业务流程都是同样的先 insert 再 get last insert id, 正常逻辑下,不会存在请求一进入业务代码,还没进行任何 insert 就去 get last insert id.

另外,在没有使用连接池的情况下,连接是被当前进程独占的,不会存在当前进程 insert 的 id 被另外一个进程获取到。
如果使用了连接池,而且在每次 insert 完之后立即释放连接(此时当前的其他业务代码还未执行完), 则需考虑 last insert id 的问题。 一般这种情况,在数据库访问层框架中会封装一个 insert 方法,此方法将数据 insert 到数据库 》取回 last insert id 》释放连接 》返回 last insert id.
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4015 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 10:22 · PVG 18:22 · LAX 02:22 · JFK 05:22
Developed with CodeLauncher
♥ Do have faith in what you're doing.