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