位置: 编程技术 - 正文

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

  • 一般纳税人的申报方式
  • 一般纳税人简易征收的适用范围
  • 土地使用税在交多少
  • 季度预交所得税可以弥补上年度亏损吗
  • 存货内部交易抵消分录第二年
  • 注销了出口退税怎么办
  • 会计折旧法有哪几种
  • 施工企业挂靠账务处理怎么做
  • 金蝶怎么填写凭证
  • 固定资产税前一次性扣除政策中的扣除十点
  • 社平工资调整补差什么意思
  • 公司租用房产税如何征收
  • 分支机构企业所得税计提和缴纳数额不一致怎么办?
  • 为什么企业要预缴增值税
  • 社保滞纳金是否影响企业信用等级
  • 罚没支出包括税收滞纳金吗
  • 票据转让后本公司还有责任吗
  • 不锈钢材料开票
  • win10玩游戏时弹出error
  • 存货丢失取得赔偿
  • 应收账款转让的风险
  • macbookappstore未知错误
  • 增值税普通发票和专用发票有什么区别
  • 股票红利税如何收
  • CVE-2016-1000027分析
  • 最优化模型的优点
  • 迪纳利国家公园在哪个国家
  • 3d reconstruction
  • pytorch with no grad
  • 旅游景点html代码
  • 【机器学习】python实现吴恩达机器学习作业合集(含数据集)
  • 厂家给的返点怎么下往来账
  • 深入分析原因,找出问题根源并有效破解
  • 给离职员工买社保的风险
  • 银行日记账跨月登记方法
  • 原材料结转成本有几种方法
  • 调整汇兑损益的摘要怎么写?
  • 预计可变现净值与账面成本的关系
  • 研发费用凭证是什么样
  • 期末存货材料成本差异
  • 政府扶持国有企业
  • 开发成本期末有余额吗
  • 租赁个人房屋租金怎么算
  • 广告费可以结转几年
  • 企业股权转让收入企业所得税
  • 新建厂房的费用怎么算
  • 购入库存商品会计摘要怎么写
  • 销项税现金流量附表如何指定
  • 材料发票失控后如何处理
  • 高新技术企业的税收优惠政策
  • 商品流通企业流程
  • sql server 存储过程 超时
  • Mysql row number()排序函数的用法和注意
  • mysql 厂家
  • windows10右键菜单打开太慢
  • mac外接显示器不显示全部桌面
  • win10电脑出现invalid partition table怎么弄
  • xp系统本地用户和组在哪里
  • linux内核驱动开发书籍
  • win10mobile官网
  • win7开始菜单在哪里
  • win8如何进入bios
  • cocos2d面试题
  • unity做app开发
  • nodejsapi框架
  • 最简单的游戏开发工具
  • python如何精确小数
  • javascript怎么做
  • js堆栈和队列
  • material design admin
  • pycharm打开文件怎么运行
  • 备份多个数据库
  • vue curd生成
  • android背景图片透明度alpha
  • acrag
  • 开发票收多少税点?
  • 个人所得税自行纳税申报表(A表)怎么填写
  • 莆田税务学校地址
  • 全国书法等级考试官网
  • 建设工程合同纠纷属于专属管辖吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设