redis+workman 做爬虫服务,开多个进程抓取数据,程序内存不会释放一直增加!求解!
目测你程序的问题
你的程序问题,看看是不是有全局数组一直在添加元素又没删除
这是读取redis队列中的任务代码
[attach]787[/attach]
assignTask方法是运行多次么?如果是不断运行assignTask,就不会不断new 很多个Worker实例,会导致内存不断增加。
这个方法是会一直调用的,而且开的是多个进程。那我每次使用完work对象然后unset掉可以解决这个问题吗!
unset不会关闭进程,也不会销毁$worker实例
正确的做法应该是workerman提前启动一批进程监听某个端口,业务需要调用assignTask时,向这个端口发送请求,这些进程收到请求后处理。
端口怎么用啊,有没有demo发个啊
目测你程序的问题
你的程序问题,看看是不是有全局数组一直在添加元素又没删除
这是读取redis队列中的任务代码
[attach]787[/attach]
assignTask方法是运行多次么?如果是不断运行assignTask,就不会不断new 很多个Worker实例,会导致内存不断增加。
这个方法是会一直调用的,而且开的是多个进程。那我每次使用完work对象然后unset掉可以解决这个问题吗!
unset不会关闭进程,也不会销毁$worker实例
正确的做法应该是workerman提前启动一批进程监听某个端口,业务需要调用assignTask时,向这个端口发送请求,这些进程收到请求后处理。
端口怎么用啊,有没有demo发个啊