使用方法引用的是:http://doc.workerman.net/faq/async-task.html
?高并發(fā)下,workerman把繁重的任務(wù)交給本機(jī)另一個(gè)任務(wù)進(jìn)程異步處理。
workerman發(fā)送數(shù)據(jù),發(fā)送的$task_data里帶有發(fā)送時(shí)間的時(shí)間戳:
$task_data = time();
$task_connection->send(json_encode($task_data));
任務(wù)進(jìn)程接受數(shù)據(jù):
$task_worker->onMessage = function($connection, $task_data)
{
$task_data = json_decode($task_data, true);
// receive_time 在高并發(fā)下有時(shí)候會(huì)有十幾秒
$receive_time = time() - $task_data;
}
任務(wù)進(jìn)程接到任務(wù)的時(shí)候,當(dāng)前時(shí)間和發(fā)送時(shí)間相減,發(fā)現(xiàn)高并發(fā)情況下,有時(shí)候會(huì)出現(xiàn)一連串十幾條的任務(wù),接受數(shù)據(jù)延遲達(dá)到7、8秒,甚至十幾秒,可能會(huì)是什么原因呢。
系統(tǒng)到達(dá)極限慢是正常的,cpu忙不過來了。加硬件或者服務(wù)器
感謝回答。應(yīng)該不是CPU的問題,CPU的占用率在并發(fā)高的時(shí)候沒跑滿,一次發(fā)送到任務(wù)進(jìn)程幾百條數(shù)據(jù)的時(shí)候,有時(shí)候會(huì)出現(xiàn)有一連串的幾條數(shù)據(jù)接收延遲達(dá)到十幾秒,其余數(shù)據(jù)都是秒接,也不平滑
任務(wù)進(jìn)程處理任務(wù)也要時(shí)間的,處理不過來就排隊(duì)了,延遲也就是正常的事情。
多開進(jìn)程試下沒準(zhǔn)會(huì)好一些
@1459:考慮到這一點(diǎn)了,測(cè)試時(shí)進(jìn)程從16個(gè)加到了上百個(gè)還是會(huì)有延遲出現(xiàn),系統(tǒng)優(yōu)化也做了,感覺也有可能是阿里云的linux系統(tǒng)的問題