开发者社区> 问答> 正文

不同类型的消息在生产者任务中如何添加?

已解决

不同类型的消息在生产者任务不同类型的消息在生产者任务中如何添加?中如何添加?

展开
收起
游客lmkkns5ck6auu 2022-10-11 17:23:22 230 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    不同类型的消息有不同的添加方式,因此分布讲述三种类型消息的添加过程。

    1)区间重复合并消息

    发送该消息时需要设置timeRange,timeRange必须大于0,单位为毫秒,表示消息将延迟timeRange毫秒后被消费,期间到来的重复消息将被合并,合并后的消息依然维持原来的消费时间。因此在存储该类型消息的时候,采用(当前时间戳+timeRange)作为分数,添加消息采用Lua脚本执行,保证操作的原子性,Lua脚本首先采用zscore命令检查消息是否已经存在,如果已经存在则直接返回,如果不存在则执行zadd命令添加。

    2)优先级消息

    发送该消息时需要设置priority,priority必须大于16,表示消息的优先级,数值越大表示优先级越高。因此在存储该类型消息的时候,采用priority作为分数,采用zadd命令直接添加。

    3)任意定时消息

    发送该类型消息时需要设置fixedTime,fixedTime必须大于当前时间,表示消费时间戳,当前时间大于该消费时间戳的时候,消息才会被消费。因此在存储该类型消息的时候,采用fixedTime作为分数,采用命令zadd直接添加。以上内容摘自《阿里开发者手册-Redis专题》电子书,点击https://developer.aliyun.com/ebook/download/7770 可下载完整版

    2022-10-12 23:08:51
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
消息队列kafka介绍 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载