一个worker进程维持的客户端断开后,这个客户端对应的onMessage回调函数中的变量就销毁了吗,像php-fpm模式那样,一个脚本执行完了,脚本内的变量和资源就全部销毁了。如果销毁了,是什么原理呢,workerman中的变量不是永久保存的吗?客户端没有断开之前,onMessage中变量就还是一直在内存中的吗?
进程执行中,不被GC的变量是一直存在的。onMessage其实就是一个方法,PHP中,一个方法执行完,其中的变量资源是要被GC的。至于跟客户端断不断开没有啥直接关系。
谢谢大佬!另外再请教一个问题,一个worker进程在onWorkerStart的回调中初始化一个mysql连接,那这个worker之后维持的连接都是用这个mysql连接在查询数据吧,万一这个worker的多个连接同时IO就绪了呢,这个worker怎么区分这个mysql返回的数据是给哪个连接的
请求都会返回一个资源标识,通过这个标识取数据就可以了
@7670:这个mysql连接可以同时处理多个请求的查询任务吗,还是同时只能处理一个任务,会阻塞其他的查询任务
@8378:支持多个请求,不会阻塞其它查询
进程执行中,不被GC的变量是一直存在的。onMessage其实就是一个方法,PHP中,一个方法执行完,其中的变量资源是要被GC的。至于跟客户端断不断开没有啥直接关系。
谢谢大佬!另外再请教一个问题,一个worker进程在onWorkerStart的回调中初始化一个mysql连接,那这个worker之后维持的连接都是用这个mysql连接在查询数据吧,万一这个worker的多个连接同时IO就绪了呢,这个worker怎么区分这个mysql返回的数据是给哪个连接的
请求都会返回一个资源标识,通过这个标识取数据就可以了
@7670:这个mysql连接可以同时处理多个请求的查询任务吗,还是同时只能处理一个任务,会阻塞其他的查询任务
@8378:支持多个请求,不会阻塞其它查询