redis带有权重的任务管理
业务场景(sorted_set类型应用场景)
任务/消息权重设定应用
当任务或者消息待处理,形成了任务队列或消息队列时,对于高优先级的任务要保障对其优先处理,如何实现任务权重管理。
解决方案
- 对于带有权重的任务,优先处理权重高的任务,采用score记录权重即可
多条件任务权重设定
如果权重条件过多时需要对排序的score值进行处理,保障score值能够兼容2条件或者多条件,例如外贸订单优先于国内订单,总裁订单优先于员工订单,经理订单优先于员工订单
- 因score长度受限,需要对数据进行截断处理,尤其是时间设置为小时或分钟即可(折算后)
- 先设定订单类别,后设定订单发起角色类别,整体score长度必须是统一的,不足位补0.第一排序规则首位不得是0
- 例如外贸101,国内102,经理004,员工008
- 员工下的外贸单score值为101008(优先)
- 经理下的国内单score值为102004