假設前端有下面的語句
t=4;
socket.send(JSON.stringify({"t": t}));
t+=1;
后端會不會在網(wǎng)絡不好的情況下收到5?
該情況用在比如加鉆石數(shù)時,前端同步更新,后端會和前端發(fā)來的數(shù)值t=4進行比對,如果符合就+1,不符合就報作弊,現(xiàn)在誤報作弊的情況偶爾發(fā)生,但不是每次都發(fā)生,排查了很多問題,現(xiàn)在只能懷疑是這個了,像是因網(wǎng)絡不好造成了傳到后端的是5?如果是這個情況,一般通信中前端同步更新應該怎么做避免數(shù)據(jù)錯亂呢?
進程間的變量是 不同步的,
把進程數(shù)改成1試下,有可能是你們業(yè)務沒考慮到多進程導致的
目前設置的是4,是Gateway和BusinessWorker里的count都改為1嗎?我先測一測,看是不是這個問題。同樣,反過來測或許更能說明問題,是不是我進程數(shù)越多,出錯的幾率就越大?每次onMessage接受到消息都會隨機給不同的進程處理嗎?
如果是的話又想用多進程需要怎么設置全局變量才不會報錯呢,這個如果一兩句話說不清可以推薦資料我自己去看,再次感謝大神解答
@1:redis我可以去了解下,數(shù)據(jù)庫的話豈不是每次有數(shù)值比對都要從數(shù)據(jù)庫取一次數(shù)據(jù),感覺好麻煩,多進程是不是等于就不能使用全局global了,因為變量不同步必然會帶來錯誤的可能