位置: 编程技术 - 正文

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

  • 进口货物增值税纳税人是谁
  • 个人所得税退还是不退好
  • 员工工伤住院伙食补助标准是多少
  • 减免的养老保险怎么走账
  • 固定资产清理残料变价收入
  • 出售固定资产不开票可以吗
  • 电子商业汇票怎么兑现
  • 资金结存期末余额方向
  • 电子承兑到期怎么操作流程
  • 印花税的纳税人为书立合同双方
  • 服务业税收包括什么
  • 长期股权投资成本法转权益法追溯调整
  • 年度销售返利的计算方法
  • 电商一定要注册公司吗
  • 食堂收入支出结构图
  • 进口产品再销售如何缴税
  • 朋友抵押贷款通过我公司名义会怎样
  • 融资协议如何缴纳印花税
  • 企业报社保可以用医保吗
  • 发票上的二维码可以扫金额吗
  • 拿到进项票下一步做啥
  • 个人租车给公司租金多少合适
  • 增值税简易征收一览表
  • 法人股东转让股权涉税
  • 企业债券收入要在所得税前扣除吗
  • 货到付款一般付多少运费
  • 东芝t351笔记本
  • 现代服务业包括哪些
  • PHP:oci_commit()的用法_Oracle函数
  • php实现的跟QQ和MSN类似的BICQ v2.0.0
  • 360safe删除不了怎么办
  • 预收账款什么时候确认增值税
  • 零代码开发工具
  • ensmix32.exe进程安全吗 ensmix32进程是什么文件产生的
  • ui.exe啥意思
  • 税法规定个人收入超过3500元的超过部分应
  • 公司收加盟费合法吗?
  • reset fields
  • 前端高手
  • 腾讯一面问什么
  • python闭包主要解决什么问题
  • 其他权益工具投资
  • 收到的赔款,罚款怎么算
  • 申请税控盘流程需要几个工作日
  • 企业改制资产整合过程中涉及的土地增值税
  • 金税盘密码和口令是多少
  • 企业送的购物卡怎么退回去
  • 如何查询发票领购日期
  • 金融债券利息收入免企业所得税吗
  • 个税里的累计专项扣除是什么
  • 汽车修理厂会计账务处理
  • 保理业务的内容有哪些
  • 企业合并中或有对价的会计处理
  • 短期借款利息的使用账户是
  • 利息收入如何做分录
  • 研发支出全部资本化能不能评高企
  • 减值准备包括哪几个方面
  • 员工的车是否可以抵税
  • xp更改dns
  • centos inode
  • win10怎么打开语言设置
  • 自动批处理文件的名字是什么
  • fp3是什么文件格式
  • win7系统宽带连接651
  • windows7如何启动任务管理器
  • win7能玩的老游戏
  • 如何开启金山毒霸
  • win10安装驱动器
  • 正则表达\d
  • 权作记录 cocos2dx
  • android 测试工具
  • list嵌套list采用什么结构
  • unity性能和内存优化
  • tomcat8.5.8
  • 猫猫的娱乐
  • python中的编码
  • 国税局税务大厅电话
  • 对供热企业相关规定
  • 手机陌陌卸载还有记录吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设