我接受對(duì)方ws推送的數(shù)據(jù),并發(fā)量非常大,每秒200條數(shù)據(jù)。我count只有一個(gè), 現(xiàn)在是對(duì)方推送的數(shù)據(jù)時(shí)間和我接受的數(shù)據(jù)時(shí)間,會(huì)越來越大。
我是把數(shù)據(jù)存在global中,另一個(gè)進(jìn)程來讀數(shù)據(jù)的
是不是有什么耗時(shí)操作比如存數(shù)據(jù)庫啥的導(dǎo)致慢了。業(yè)務(wù)全部都去掉,只記錄日志看下慢不慢。
按道理每秒接收200條不會(huì)慢,除非帶寬不夠,或者業(yè)務(wù)邏輯慢,也有可能對(duì)方發(fā)送越來越慢。
我再onMessage把所有的業(yè)務(wù)代碼注釋了,獲取對(duì)方推送過來的數(shù)據(jù),時(shí)間是對(duì)的上的。 我懷疑是我用了GlobalData變量共享組件,我把數(shù)據(jù)存入global,然后另一個(gè)進(jìn)程讀取數(shù)據(jù)采用的是Timer輪詢的方式讀取,然后時(shí)間就對(duì)不上了。 但是為什么喃? 想不明白
我測(cè)試了是GlobalData 賦值的時(shí)候, 阻塞了我onMessage,導(dǎo)致時(shí)間越來越差距遠(yuǎn), 那么我如何解決?。?/p>
請(qǐng)求量大的話沒必要每次都把數(shù)據(jù)存GlobalData。你可以用變量緩存一會(huì)兒,然后在合適的時(shí)機(jī)存進(jìn)去,比如用定時(shí)器每秒保存一次啥的。