Swoole方法之sendMessage
向任意Worker进程或者Task进程发送消息. 在非主进程和管理进程中可调用. 收到消息的进程会触发onPipeMessage事件.
Swoole\Server->sendMessage($message,$workerId)
提示
在Worker进程内调用sendMessage是异步IO的,消息会先存到缓冲区,可写时向unixSocket发送此消息
在Task进程内调用sendMessage默认是同步IO,但有些情况会自动转换为异步IO
在User进程内调用sendMessage和Task一样,默认同步阻塞的.
注意
如果sendMessage()是异步IO的,如果对端进程因为种种原因不接收数据,千万不要一直调用sendMessage(),会导致占用大量的内存资源.可以增加一个应答机制,如果对端不回家就暂停调用.
使用sendMessage必须注册onPipeMessage事件回调函数.
设置了task_ipc_mode=3 将无法使用sendMessage向特定的task进程发送消息

浙公网安备 33010602011771号