位置: 编程技术 - 正文

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的概念)

  • 为什么缴纳税
  • 股权转让如何避免土地增值税
  • 退回所得税怎么处理
  • 一般纳税人以清包工方式
  • 会计报表上总资产怎么填
  • 营改增一般纳税人申请过渡性财政扶持资金
  • 软件项目成本包括直接成本和间接成本,一般而言
  • 购买国债利息收入计入利润总额吗
  • 公司与股东的往来款现金流量表
  • 收购免税农产品的进项税可以抵扣吗
  • 公司自用产品 抵税吗?
  • 事业单位财政拨款是编制吗
  • 收回已核销的坏账并入账
  • 赎回理财产品的利息怎么做账
  • macbookpro安装mysql
  • php session_start
  • uniapp全局对象
  • php数组函数输出《咏雪》里有多少"片"字
  • 固定资产的税务筹划
  • php foo
  • 属于资本的是
  • 求源代码
  • php安装及使用教程
  • 以前年度损益调整会计分录
  • 城建税教育费附加什么时候交
  • yolov1代码
  • 企业利润总额为负
  • php利用数组完成党员信息表
  • win11显卡驱动不兼容
  • mobilenet模型
  • php如何遍历二维数组
  • 增值税进项和销项怎么抵扣
  • springmvc简介
  • 公允价值计量转权益法例题
  • 外贸出口退税进项发票有多家供应商怎么匹配
  • 固定资产被替换的账面原值怎么算
  • python创建ndarray
  • 商品进销差价是流动资产吗
  • mongodb查询操作
  • 非营利组织如何盈利
  • 公司收到社保打款怎么办
  • 代缴车险
  • 税法对企业费用的限定
  • 资产负债表期初余额和期末余额
  • 转账手续费怎么入账
  • 制造费用如何结转生产成本
  • 新单位年终工作总结
  • sqlserver锁机制
  • service是什么程序
  • win7旗舰版系统还原无法启动
  • u盘制作winpe启动盘
  • win批处理命令
  • pull current
  • ghost到一半报错
  • macbookpro移到废纸篓快捷键
  • win10通过任务管理器打开设置
  • 网卡破解
  • win7关闭uac是什么意思
  • win10预览文件怎么显示内容
  • unity锚点
  • javascript自定义属性
  • node.js的概念
  • 还原分区和引导分区
  • 创建一个css文件
  • JAVA的OPENGL,JOGL入门实例----不断变色的点阵 (源代码)
  • 了不起的狐狸爸爸
  • Shell脚本监控日志 出现关键字 grep提醒
  • node.js使用方法
  • 批量dns解析
  • jquery mouse
  • js移动dom
  • javascript的dom
  • js cookie存取
  • python例子大全
  • python 基础 教程
  • 开的发票怎么抽奖
  • 北京国税地税合并
  • 浙江国税局电子税务局
  • 进货没有发票怎么报税
  • 专家费缴税标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设