一个WOKRER代理调用另外一个WORKER代理中的异步TCP连接的问题。

azafek

问题是这样的
我开了一个WOKRER, WORKER A, 假设COUNT是100,在其中使用了$serverA = new AsyncTcpConnection()连接另外一家公司的服务器 SERVER A。这个SERVER A不限制连接数,所以我开了100个进程

问题是我的WORKER B,模式一样的,需要$serverB = new AsyncTcpConnection()连接另一台服务器SERVER B。因为SERVER B中限制连接数,最多10个。所以我这个WORKER B的COUNT只有10。

我想不要WORKER B了,就用WORKER A中既连接SERVER A,又连接SERVER B。也就是 两个AsyncTcpConnection都放在WORKER A中。这样两个连接我都可以使用($serverA和$serverB都在一个进程中)。但是目前来看,因为连接数限制的问题。我没有办法,或者说有什么其他的方法??

另外一个方案。还是worker A,worker B两个WORKER,但是我想在WORKER A中使用WORKER B里的变量 $serverB收发消息。这个应该怎么做?

只能用ip+端口的方式请求吗?有没有可能在程序中直接调用

2125 1 0
1个回答

phpcreeper

1、进程数和连接数搞混了,并不是一个进程内只能发起一个异步tcp连接;
2、另外一个问题的本质是不同进程间通信:
多进程之间是不能跨进程互相操作对方空间的变量的,方法很多比如使用官方的 globalData组件、 或者redis组件、或者共享内存等等来实现【当然如果你将两个worker都写在同一个进程内,那倒是有机会可以直接调用】。

  • 暂无评论
年代过于久远,无法发表回答
×
🔝