位置: 编程技术 - 正文

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

  • 税收缴款书现在还有吗
  • 控股子公司注销了可以起诉总公司吗怎么办
  • 金蝶美金账户怎么开
  • 公司内部人员发言稿
  • 服装业增值税专用发票税率
  • 工程项目的存货含哪些科目
  • 行政单位维修工程规定
  • 企业购入投资性房地产时借记什么科目
  • 记账凭证广告费
  • 合同中止发票已入账怎么处理?
  • 个人开具建筑服务发票
  • 个人所得税多缴了可以退回吗
  • 手撕发票去年的可以报销吗
  • 房地产企业未出售的房子是否要交房产税
  • 统一信用社会代码怎么填
  • 是否只有首次购买税控盘可以全额抵减增值税
  • 月末在产品直接人工成本怎么算
  • 购进免税农产品再销售免税吗
  • 银行流水账单怎么查
  • 企业税收分为几大类
  • win11怎么下载手机应用
  • 长期负债在报表哪里看
  • microsoft word安装
  • 总公司拨给分公司款需要交税吗
  • 哪些人可以享受二级医保
  • 鸿蒙系统怎么退出开发者选项
  • vue app打包
  • 喝薏米红豆水最佳时间
  • 工行对公贷款利息扣除时间
  • php接收ajax请求
  • php实现和工作原理
  • 零基础舞蹈培训
  • vuerouter模块化
  • 固定资产报废会计科目处理
  • 企业所得税季报是填累计数吗
  • 兼职算受雇吗
  • 主营业务成本和生产成本的关系
  • 印花税减半征收减免性质代码
  • 退伍军人企业所得税优惠
  • php框架是干什么的
  • 进货该怎么进
  • 主营业务成本可以设明细科目吗
  • sql中的row_number
  • 个体户是怎么交公积金的
  • 溢价发行债券取得的收益应如何处理
  • 怎么开公司的微信公众号
  • 社保申报工伤怎么操作
  • 分支机构企业所得税计提和缴纳数额不一致怎么办?
  • 外购的商品用于生产
  • 企业给员工租的公寓
  • sqlserver 禁用触发器 超时
  • mac设置多个桌面
  • windows7用户
  • mac快速关闭所有窗口
  • 苹果15手机价格和图片颜色
  • window英语
  • 隐藏的系统应用在哪找
  • linux中的文件
  • 未能打开这台计算机上的组策略对象
  • 电脑重做系统后打印机不能打印
  • linux如何远程桌面
  • win7系统监控
  • linux创建目录函数
  • gnu grub卸载
  • win10系统应用更新
  • cocos2d-x教程
  • 爱家保障行动
  • set命令应用
  • js格式化日期yyyy-mm-dd hh:mm:ss
  • js遮罩效果
  • jquery图片轮播无缝连接
  • Vue.js与 ASP.NET Core 服务端渲染功能整合
  • js实现表单提交
  • python怎么生成随机函数
  • unityugui
  • html中meta
  • 对python变量的理解
  • 股权转让税收优惠个人所得税
  • 广东税务app下载安装
  • 补充协议交印花税嘛
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设