gatewaker 怎么实现多个动态的队列?

sund

是这么个情况,我的一个接口接收的数据需要分组转发。因为接收数据不是匀速,有时快有时慢,但转发的接收方有限制接收速度。
比方说我收的数据中的前十条发到第一个分组,后十条发送到第二个分组,依此类推。
接收方每个分组有个速度限制,最少间隔2秒每条数据,每个分组都时这样。所以我想要用多个队列来缓冲这个数据,实现每个分组最快2秒转发一条。

问题来了,接收方有几十个分组,我想利用接收的数据中的分组参数来动态的初始化队列。
即第一个分组的数据来了,我初始化一个队列。
例如:
要转发给第3 个分组的数据来了
$q3 = new queue();
因为接收的数据的分组不确定。

我怎么样才能不在OnMessage中初始化多次?

能否在OnWorkerstart 中这么初始化:
$q[] = new queue();

OnMessage 中

$group = $message['group'];
$q[$group]->InQ($message);

这样可行吗

1681 1 0
1个回答

xiasha11

上redis

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