研究了一晚上webman。想问一下webman是不是异步框架,需不需要考虑内存溢出之类的问题?

0

研究了一晚上webman。内心有几个疑问:
1.webman是异步http框架还是同步?
2.第三方的库,比如github上微信的诸多sdk,可以随意使用么?
3.如果我想使用第三方的数据库模型,比如yii2的ActiveRecord,可以随意集成么?需要注意什么?
4.用webman开发,和在php-fpm模式下开发,两者写代码的方式有什么不同?需要注意什么?
5.问题有点多,我自己也不太好意思了,希望大神能不吝赐教,非常感激

已邀请:

如果

赞同来自:

刚刚又想到一个问题。webman开发的时候,可不可以定义一个基类比如base_controller,然后让所有的controller都继承它。

walkor

赞同来自:

1、同步
2、大部分第三方库可以直接用,如果第三方库使用了 php-fpm 特有的特性,比如设置 header cookie session 以及一些和http协议相关的函数时 无法直接使用,可能需要一些改造,目前看这种库并不多。微信sdk可以参考 https://www.workerman.net/doc/webman#/components/wechat
3、如果 yii2 的ActiveRecord 有独立的composer库,可以直接集成。注意的点就是使用mysql单例,节省资源。使用单例的时候注意mysql服务端会关闭长时间不通讯的mysql连接导致程序报错。laravel db和 thinkphp db都带自动重连,不知道yii的ActiveRecord是否带重连。如果不带就加一个定时器,每隔一段时间(比如55秒)执行 "select 1" ,保持mysql连接活跃避免被关闭。
4、用webman开发,和在php-fpm模式下开发基本上一样,写代码基本没差别。


关于内存泄漏问题,一般只要注意类的静态成员是数组的情况,注意不要无限向这个静态成员添加数组就行,也就是不要让它无限膨胀,该删的时候删除。另外框架支持php-fpm类似max-request配置,可以设置请求多少次之后回收进程,如果真的发生内存泄漏,有个兜底方案。

要回复问题请先登录注册