通道容器

优质
小牛编辑
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');