GoNotifyConsumer  - 回调任务消费

给不了告白 2020-03-10 11:36:32

回调任务消费,类似微信支付回调,多条推送队列

将一个推送任务推送进来,消费者将会POST任务数据到指定的url(通知客户)

客户接受接口需要响应指定内容 默认"success"字段,如果没有响应该内容,则认定回调失败,将会按一定间隔再次触发推送,直到超出次数或者推送成功

环境依赖

基于goframe框架,请先查看该框架的开发文档、gf工具使用文档

打包构建:gf build main.go

上传构建包和其他目录(配置目录 public目录等) 运行即可

默认配置

默认失败4次就丢弃,每次间隔为:{0, 5, 10, 30}

默认推送的url返回"success"即为成功,若要修改,在app/cron/notify/consumer.go的doJob方法中找到相关逻辑修改 if responseContext != "success" {

相关 api url

  • 打开推送入口 /notify/OpenQueue (默认打开)
  • 关闭推送入口 /notify/RefuseQueue
  • 推送数据进队列 /notify/PushQueue post两个字段
    • url
    • data 数组

可以参考api接口的逻辑,实现TCP版推送入口,增加响应速率。

相关代码所在文件

boot/boot.go 开启监听的队列

app/cron/notify/consumer.go 设置每次队列失败后增加的间隔

如何新增次数

  • app/cron/notify/consumer.go 新增delayTimeArray数组的元素
  • boot/boot.go 增加初始化队列、消费者开启(传入队列,最后一个队列传递自身就好了 反正不会用到)

     

    公告

    《从零开始开发BBS》课程上线啦,快来跟着我一步步搭建属于你的BBS吧。

    课程地址:https://www.shiyanlou.com/courses/1436
    9折优惠邀请码: ZHwfIjb1

    该课程会带领大家一步步的了解并熟悉Go语言开发,如果你是一个Go语言初学者,或者正准备学习Go语言,那么这个课程非常适合你。如果你熟练掌握了本课程中的知识点,相信你就已经入门Go语言开发,并能胜任日常的开发工作了。