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进程发送消息

 

posted @ 2025-04-16 11:30  X__cicada  阅读(25)  评论(0)    收藏  举报