GoNotifyConsumer回調(diào)任務(wù)消費
GoNotifyConsumer:回調(diào)任務(wù)消費,類似微信支付回調(diào),多條推送隊列
將一個推送任務(wù)推送進來,消費者將會POST任務(wù)數(shù)據(jù)到指定的url(通知客戶)
客戶接受接口需要響應(yīng)指定內(nèi)容 默認"success"字段,如果沒有響應(yīng)該內(nèi)容,則認定回調(diào)失敗,將會按一定間隔再次觸發(fā)推送,直到超出次數(shù)或者推送成功
環(huán)境依賴
基于goframe框架,請先查看該框架的開發(fā)文檔、gf工具使用文檔
打包構(gòu)建:gf build main.go
上傳構(gòu)建包和其他目錄(配置目錄 public目錄等) 運行即可
默認配置
默認失敗4次就丟棄,每次間隔為:{0, 5, 10, 30}
默認推送的url返回"success"即為成功,若要修改,在app/cron/notify/consumer.go的doJob方法中找到相關(guān)邏輯修改 if responseContext != "success" {
相關(guān) api url
- 打開推送入口 /notify/OpenQueue (默認打開)
- 關(guān)閉推送入口 /notify/RefuseQueue
- 推送數(shù)據(jù)進隊列 /notify/PushQueue post兩個字段
-
- url
-
- data 數(shù)組
可以參考api接口的邏輯,實現(xiàn)TCP版推送入口,增加響應(yīng)速率。
相關(guān)代碼所在文件
boot/boot.go 開啟監(jiān)聽的隊列
app/cron/notify/consumer.go 設(shè)置每次隊列失敗后增加的間隔
如何新增次數(shù)
- app/cron/notify/consumer.go 新增delayTimeArray數(shù)組的元素
- boot/boot.go 增加初始化隊列、消費者開啟(傳入隊列,最后一個隊列傳遞自身就好了 反正不會用到)
評論
圖片
表情
