国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

workerman JSON-RPC多次異步調(diào)用并成功異步接收數(shù)據(jù)后,再次異步調(diào)用出現(xiàn)異步調(diào)用方法出現(xiàn)have already been called

leo

服務會接收1min左右一次的消息,當收到消息后會根據(jù)消息中的經(jīng)緯度,異步調(diào)用逆地理位置服務,獲取逆地理位置信息。
異步調(diào)用逆地理位置服務成功幾次后,就會出現(xiàn)一次異步調(diào)用失敗,錯誤原始提示 異步調(diào)用的方法已經(jīng)被調(diào)用。但是根據(jù)記錄的log,前面幾次調(diào)用都已經(jīng)完成了接收數(shù)據(jù)的操作(見附件圖片)。

查看source出現(xiàn)這種情況的時候是異步調(diào)用方法所有參數(shù)序列化后作為key來保存實例,如果已經(jīng)存在實例,那么就拋已經(jīng)調(diào)用異步服務的異常。那么同一個進程,如果key不變,那么第二次調(diào)用就會拋這個異常。

這樣的實現(xiàn)是不是bug?

3657 2 0
2個回答

leo

找到原因了,接收消息,然后異步調(diào)用逆地理位置解析服務的服務,是個常駐內(nèi)存的服務,因此導致self::$asyncInstances必然出現(xiàn)已經(jīng)存在的情況。

概率出現(xiàn)的原因是接收消息的服務本身就是個多進程的服務,當隨機接收消息時出現(xiàn)在同一個進程中時,就會報錯。

解決的辦法是在異步接收數(shù)據(jù)后,將self::$asyncInstances置null。

  • 暫無評論
walkor 打賞

ok

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??