背景:
因?yàn)槿绻鹓ame logic 有error會導(dǎo)致timer也停止,所以打算將Timer獨(dú)立business使其不被business error打斷
專案:Laravel + redis
方案討論:
在原本Laravel專案已經(jīng)有一套gateway workerman,為了在開一套所以直接複製資料夾在run 一個(gè)gateway排程
複製出來的專案就專門跑Timer所以只開business, gateway register都是使用原本的gateway workerman
目前實(shí)作方法:使用redis queue將要運(yùn)行的timer放進(jìn)去,在Timer gateway 中實(shí)作死循環(huán)在onWorkerStart,一直輪尋將queue Timer讀取出來生成,並處理業(yè)務(wù)邏輯。
目前這樣的作法變成說,logic兩邊都要寫,而且會多一個(gè)專案出來,請問這樣的作法是可以的嗎?還是版大各位有推薦的方法呢?
我翻譯一下,大意就是
原本Laravel項(xiàng)目已經(jīng)有g(shù)ateway workerman,新項(xiàng)目直接復(fù)制老項(xiàng)目再跑一個(gè)gateway
復(fù)制出來的項(xiàng)目跑Timer所以只開business, gateway register都是使用原本的gateway workerman
目前的實(shí)現(xiàn)方法:將要運(yùn)行的Timer放Redis隊(duì)列,在Timer gateway中的onWorkerStart跑while(true),輪詢r(jià)edis隊(duì)列里的Timer,并處理業(yè)務(wù)邏輯。
現(xiàn)在這樣兩個(gè)項(xiàng)目都要寫代碼邏輯,而且都相互獨(dú)立,請問這樣的方法可以嗎?還是各位大大有別的方式處理
題主本意是想著一個(gè)項(xiàng)目內(nèi)搞定