通道容器
优质
小牛编辑
136浏览
2023-12-01
类名: Imi\Util\Co\ChannelContainer
一个通道(Channel)管理容器,通过一个 id
,快速操作和管理通道。
imi v1.2.0 版本新增
方法
push
向通道中写入数据。
ChannelContainer::push('id123', '数据');
ChannelContainer::push('id123', '数据', 3); // 超时 3 秒
pop
从通道中读取数据。
ChannelContainer::pop('id123');
ChannelContainer::pop('id123', 3); // 超时 3 秒
finallyPop
从通道拿数据,并且释放通道
ChannelContainer::finallyPop('id123');
ChannelContainer::finallyPop('id123', 3); // 超时 3 秒
stats
获取通道的状态
ChannelContainer::stats('id123');
close
关闭通道。并唤醒所有等待读写的协程。
ChannelContainer::close('id123');
length
获取通道中的元素数量。
ChannelContainer::length('id123');
isEmpty
判断当前通道是否为空。
ChannelContainer::isEmpty('id123');
isFull
判断当前通道是否已满。
ChannelContainer::isFull('id123');
getChannel
获取 \Swoole\Coroutine\Channel
对象,不存在会自动创建并返回
ChannelContainer::getChannel('id123');
hasChannel
通道是否存在
ChannelContainer::hasChannel('id123');
removeChannel
移除通道
ChannelContainer::removeChannel('id123');