位置: 编程技术 - 正文

Node.js + Redis Sorted Set实现任务队列

编辑:rootadmin

推荐整理分享Node.js + Redis Sorted Set实现任务队列,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

需求:功能 A 需要调用第三方 API 获取数据,而第三方 API 自身是异步处理方式,在调用后会返回数据与状态 { data: "查询结果", "status": "正在异步处理中" } ,这样就需要间隔一段时间后再去调用第三方 API 获取数据。为了用户在使用功能 A 时不会因为第三方 API 正在异步处理中而必须等待,将用户请求加入任务队列中,返回部分数据并关闭请求。然后定时从任务队列里中取出任务调用第三方 API,若返回状态为”异步处理中“,将该任务再次加入任务队列,若返回状态为”已处理完毕“,将返回数据入库。

根据以上问题,想到使用 Node.js + Redis sorted set 来实现任务队列。Node.js 实现自身应用 API 用来接受用户请求,合并数据库已存数据与 API 返回的部分数据返回给用户,并将任务加入到任务队列中。利用 Node.js child process 与 cron 定时从任务队列中取出任务执行。

Node.js + Redis Sorted Set实现任务队列

在设计任务队列的过程中需要考虑到的几个问题

并行执行多个任务 任务唯一性 任务成功或失败后的处理

针对以上问题的解决方案

并行执行多个任务利用 Promise.all 来实现 任务唯一性利用 Redis sorted set 来实现。使用时间戳作为分值可以实现将 sorted set 作为 list 来使用,在加入任务时判断任务是否已经存在,在取出任务执行时将该任务分值设置为 0,每次取出分值大于 0 的任务来执行,可以避免重复执行任务。 执行任务成功后删除任务,执行任务失败后将任务分值更新为当前时间时间戳,这样就可以将失败的任务重新加入任务队列尾部

示例代码

Node.js的基本知识简单汇总 Node.js从年诞生至今,已经发展了两年有余,其成长的速度有目共睹。从在github的访问量超过Rails,到去年底Node.jsS创始人RyanDalh加盟Joyent获得企业资助

nodejs微信公众号支付开发 odeJs微信公众号功能开发,移动端H5页面调用微信的支付功能。这几天根据公司的需要使用node和h5页面调用微信的支付功能完成支付需求。现在把开发过程

详解Node.Js如何处理post数据 实现思路将data和end事件的回调函数直接放在服务器中,在data事件回调中收集所有的POST数据,当接收到所有数据,触发end事件后,其回调函数调用请求

标签: Node.js + Redis Sorted Set实现任务队列

本文链接地址:https://www.jiuchutong.com/biancheng/370797.html 转载请保留说明!

上一篇:Node.js connect ECONNREFUSED错误解决办法

下一篇:Node.js的基本知识简单汇总(node.js的概念)

  • 小规模纳税人的企业所得税税率
  • 二手房个人所得税是买方交还是卖方交
  • 科技型中小企业申请流程
  • 工资出现负数怎么申报个税
  • 2021成品油增值税计算
  • 银行基本户可以变更成一般户吗
  • 对公账户可以支付给个人吗
  • 固定资产不提折旧怎么算
  • 长期待摊费用可以转入固定资产吗
  • 预付款核销会计分录
  • 小规模增值税做那个费用科目
  • 收到销售退回时应当冲减
  • 发票丢失怎样写说明
  • 工会活动购买物品会计分录
  • 土地前期开发费用计征契税
  • 高新技术产品收入增长率公式
  • 收到国债本金和利息会计分录
  • 出口退税和企业所得税
  • 质保金的税务处理
  • 企业所得税汇算清缴时间
  • 关于土地增值税若干问题的通知
  • 企业出售房产的账务处理
  • 环保设备的折旧计入
  • 专项资金如何做账务处理
  • 成品加工为另一个产品
  • 鸿蒙密码锁设置密码的方法
  • 资产负债表短期负债包括哪些
  • mysql 数据源
  • 分配辅助生产成本时可能借记的科目有
  • 公司收入没有进项
  • 其他应付款余额在借方表示什么意思
  • 卖出回购证券的钱怎么算
  • 坏账准备怎么做资产负债表
  • avoid什么用法
  • 技术服务转包涉税处理
  • 员工出差机票计入什么科目
  • php include require
  • yolov3数据集格式
  • 数据集介绍
  • web攻防之业务安全实战指南在线阅读
  • 如何让别人访问自己的qq空间
  • 劳务公司获奖感言简短
  • 股东之间股权转让需要股东会决议吗
  • select
  • 织梦模板首页logo修改
  • 待报解预算收入怎么做账
  • 汇率差的差额计算方式
  • 如何利用远期交易保值
  • 应收账款是指什么
  • 提供维修业务的税率是多少
  • 试分析营改增的重大意义
  • 电子承兑没到期兑换手多少手续费
  • 事业单位应交增值税明细科目
  • 营改增后房地产企业增值税如何核算
  • 公司私账银行流水
  • 收到预付卡的发票是否可以报销呢?
  • 收到股东投资如何做账
  • 计费销售额如何计税
  • 百望开发票
  • 待摊费用和预提费用的区别
  • 会计凭证的粘贴顺序
  • 其他流动资产是
  • 硬盘 bios
  • avserve2.exe是什么东东
  • fciv.exe
  • cortanawin10在哪
  • win7不识别大于4T的盘
  • win10电脑提示
  • linux里面vim
  • python 堆叠
  • 网页弹窗不见了
  • js如何截取中文字符
  • jquery22插件网
  • js运行效率
  • python+django
  • 出口退税中的留抵税额
  • 代收国税地税收入
  • 集美区区委书记什么级别
  • 残疾人有车能否坐公交车
  • 水利工程税金的计算公式
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设