请问有没有,向设备推送脚本时的异常推送处理方案?
在向设备推送脚本时,可能会因为设备掉线、脚本冲突等造成推送失败,如果出现这种情形该怎么进行记录、重推。如果重推,重推的机制是什么?
不知道大家有没有类似的解决方案或者框架。
回答:
推送的消息使用一个结构体,比如
{"msg_id":1,"device_id":"1111111111","msg":"hello","retry":0,"last_send_time":1622425485}
使用这样的一个json字符串将推送的设备和信息,推送一个消息队列里,简单点,使用Redis的list。
然后启动计划任务从这个队列里取出数据,解析出设备id和消息,重试次数和最后发送时间(这块就可以用来做最多重试几次和多久重试一次的逻辑),进行发送,不管成功还是失败,都要记录一条日志。数据库,文件,还是消息都可以,需要持久化。
如果发送失败,就把这条消息里的retry+1,last_send_time赋值为当前时间,然后把这个消息重新丢回到消息队列的尾部,如果重试次数大于规定,则丢弃这条消息。
以上是 请问有没有,向设备推送脚本时的异常推送处理方案? 的全部内容, 来源链接: utcz.com/a/156594.html