位置: 编程技术 - 正文

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

发布时间:2024-02-27

推荐整理分享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的概念)

  • 应交税费应交增值税明细账怎么填
  • 金税盘是什么时候开始使用的
  • 公司的现金收入可以直接发工资吗
  • 私车公用协议可以入账吗?
  • 一般纳税人登记证明
  • 外经证错了已经交了税怎么办
  • 套期工具是资产还是负债
  • 汇算清缴上年度金额怎么填
  • 工业固定资产折旧会计处理
  • 保险赔款个人所得税计算
  • 暂估入账估低了怎么办
  • 以前年度亏损本季度盈利所得税申报
  • 本月有收入免增值税吗
  • 董事会费用计入什么科目
  • 报关税怎么做账
  • 开票税率选错申报增值税时怎么处理
  • 企业以前年度的亏损在哪查
  • 单位社保扣款
  • 电子税务局实名采集怎么弄
  • 小微企业附加税减半
  • 资本公积转增的股票可以转让吗
  • 营业费用包括哪些明细科目内容
  • 税务代开的专票未取票,逾期会作废吗?
  • 劳务派遣 税务
  • 公司增值税发票怎么开
  • 收购企业的账务处理流程
  • 财政指标文和拨款流程
  • 取得失控发票
  • app data文件夹
  • mcrlnstaller
  • 公司其他费用包括哪些费用
  • 购买生产用品计入什么科目
  • 视同销售计税价格如何确定
  • 一搬纳税人
  • 配件买不到
  • php常用array函数
  • get请求与post
  • vue的常见面试题
  • php中的强制类型转换函数有哪些?
  • 酒店的销售费用和管理费用如何进行区分
  • 年末应交税费怎么算
  • 出差费用包干制还需要报销吗
  • 税务机关代开的增值税专用发票不含税销售额是什么意思
  • 企业合并的会计处理方法
  • 购进的货物含税吗
  • mysql的union语句
  • phpcms安装
  • 跨月发票红字冲销有影响吗
  • 一般纳税人无形资产税率
  • 业务招待费税务风险
  • 罚款支出算费用吗
  • 什么是金融资产和金融负债
  • 原始凭证的基本内容有会计分录吗
  • 单位每个月支付给个人的保洁费如何申报入账
  • 实收资本账务处理流程
  • 幼儿园增值税优惠政策
  • 个人向公司借款流程
  • 赠送设备如何做账务处理
  • 探讨探讨
  • docker部署zookeeper集群
  • winxp系统设备管理器
  • windows7如何关闭夜间模式
  • linux服务器搭建实战详解
  • 如何关闭win10自动升级win11
  • js一维数组转树结构
  • rsync安装使用详解
  • 常用的linux命令大全
  • django 验证码
  • opengl es4
  • dos 判断
  • Javascript Throttle & Debounce应用介绍
  • jQuery扩展实现text提示还能输入多少字节的方法
  • python 面向对象 类
  • 怎样在电子税务局查询财务报表
  • 甘肃税务局电子税务局app
  • 南京税务登记查询官网
  • 杭州没有户口可以上幼儿园吗
  • 汽车契税和购置税一样吗
  • 民办非企业暂行
  • 重庆税务局app下载官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号