是這么個情況,我的一個接口接收的數據需要分組轉發(fā)。因為接收數據不是勻速,有時快有時慢,但轉發(fā)的接收方有限制接收速度。
比方說我收的數據中的前十條發(fā)到第一個分組,后十條發(fā)送到第二個分組,依此類推。
接收方每個分組有個速度限制,最少間隔2秒每條數據,每個分組都時這樣。所以我想要用多個隊列來緩沖這個數據,實現每個分組最快2秒轉發(fā)一條。
問題來了,接收方有幾十個分組,我想利用接收的數據中的分組參數來動態(tài)的初始化隊列。
即第一個分組的數據來了,我初始化一個隊列。
例如:
要轉發(fā)給第3 個分組的數據來了
$q3 = new queue();
因為接收的數據的分組不確定。
我怎么樣才能不在OnMessage中初始化多次?
能否在OnWorkerstart 中這么初始化:
$q[] = new queue();
OnMessage 中
再
$group = $message['group'];
$q[$group]->InQ($message);
這樣可行嗎