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