起初,我創(chuàng)建了400個(gè)門店,然后通過(guò)admin后臺(tái)新增了50多個(gè)商品,選擇的是“全部門店適用”,
結(jié)果發(fā)現(xiàn)redis的{queues:CRMEB_PRO}隊(duì)列暴漲,目前已經(jīng)運(yùn)行了5個(gè)小時(shí),增長(zhǎng)到了500多萬(wàn),如圖:
為了避免大量的商品同步隊(duì)列任務(wù)阻塞其他任務(wù),我將ProductSyncStoreJob的隊(duì)列使用了單獨(dú)的隊(duì)列名去執(zhí)行的:
然后我在平臺(tái)上對(duì)某一個(gè)商品修改了標(biāo)題,結(jié)果發(fā)現(xiàn)redis依舊在無(wú)限增長(zhǎng):
一下午時(shí)間,這個(gè)表爆長(zhǎng)了幾百萬(wàn)行:
官方有無(wú)對(duì)這個(gè)邏輯的優(yōu)化方案。
今天發(fā)現(xiàn):
現(xiàn)有400個(gè)門店,如果admin平臺(tái)更新1個(gè)商品,那么redis中會(huì)產(chǎn)生20萬(wàn)條隊(duì)列,我對(duì)同步商品使用了獨(dú)立的隊(duì)列名,同時(shí)給他他開10個(gè)工作線程,需要消費(fèi)好幾分鐘。
如果admin后臺(tái)對(duì)多個(gè)商品進(jìn)行更新,那么這個(gè)隊(duì)列消息的數(shù)量會(huì)暴漲到幾百萬(wàn)條