接到一个开发任务,需求是当报警超过X分钟未处理则通知用户, 我打算用redis-queue任务队列来做,当某个设备触发报警时 就把[设备id]和[触发时间]字段插入到任务队列, ,消费者进程获得[设备id]和[触发时间]字段,然后以[设备id]字段为条件查询数据库表判断[触发时间]是否超过报警时间. 超过报警时间则进行消息通知,未超过报警时间则插入任务队列进行下一个循环的消费
这个方案我总感觉不够好. 不知道论坛里的朋友们有没有做过类似的需求 能提供更优秀的解决方案 我可以打赏
延时队列去处理, 5分钟后执行, 查询是否已处理, 处理则不通知
这个分钟数是可以进行调整 并且可以删除的
这个分钟数,会不会存表, 存表的话, 给个标志, 更新时间啥的, 执行的时候对比更新时间 确认是否执行
分钟数不影响,不设置时 不插入消息队列。已插入的消息队列还是按原设置的时间来通知
延时队列去处理, 5分钟后执行, 查询是否已处理, 处理则不通知
这个分钟数是可以进行调整 并且可以删除的
这个分钟数,会不会存表, 存表的话, 给个标志, 更新时间啥的, 执行的时候对比更新时间 确认是否执行
分钟数不影响,不设置时 不插入消息队列。已插入的消息队列还是按原设置的时间来通知