位置: 编程技术 - 正文

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

  • 水利基金的计税税率6
  • 印花税按合同的多少收
  • 注册资本为0的企业
  • 集团内部资产无偿划转是否纳税增值税
  • 开办药品企业的要求
  • .申报表税源编码怎么填
  • 微信怎么开公司账户
  • 职工享受工伤保险
  • 纳税人申请退税需要报送的资料和证件有
  • 现金流管理模式
  • 代采账务处理
  • 三证合一办理流程及费用
  • 跨年的费用需要冲减
  • 外贸企业仍一箱难求
  • 企业购买的黄金计入什么科目
  • 何为自然人股东
  • 评职称用的专利跟地标是一个东西吗?
  • 抵扣勾选和退税勾选选错了怎么办
  • 营改增后购房发票怎么开
  • 营改增后固定资产进项税抵扣规定
  • 2017年8月1日到现在多少天
  • 甲供工程会计分录
  • 收购药材再销售可以免税
  • 车辆保险车船税每年交多少
  • 新企业残保金免交三年超过30人
  • 现金存入对公账户用途写什么
  • 代账会计的职责
  • win10为什么毛病这么多
  • 稿酬计入工资所得吗
  • 长期待摊费用科目还用吗
  • retrorun.exe - retrorun有什么用 是什么进程
  • 触电了该怎么做
  • win7打开启动
  • 出口退税退的是啥
  • 冲减应收账款的分录
  • 前端 上传文件
  • pace框架
  • 训练自己的GPT模型 中文改英文
  • tp6 分页
  • python%s
  • 每月计提的工资包含社保吗
  • 纳税申报期和税款所属期的区别
  • 建筑劳保费返还政策
  • 怎样申请土地增值税补贴
  • ubuntu下使用SQLite3的基本命令
  • 织梦cms为什么不维护了
  • 计提工会经费是什么工资项目
  • 一般纳税人的账务处理分录
  • 小公司财务做内账流程
  • 税控盘买了怎么用
  • 支出记账凭证单手写
  • 差额征收的有哪些
  • 企业代扣的个人所得税款收入属于哪个会计科目
  • 公司贷款直接打收据吗
  • 收到去年所得税退税款会计分录
  • 除了增值税专用发票,还有什么发票可抵扣
  • 快递做账用什么软件
  • 从公账提取备用金到个人账户怎么做会计分录
  • 医院的自助缴费机怎么开具发票
  • 其他业务收入如何开票
  • 固定资产一次性扣除账务处理
  • 新会计准则2021执行科目
  • 工作地变更社保卡怎么办
  • 银行存款日记账模板
  • Win10如何禁止显卡驱动自动更新
  • win10自动
  • windows无法更改设置
  • ubuntu20.04.1安装
  • 微信小程序选择地址
  • 用nodejs做的项目
  • 安卓开源好处
  • 编程用到的所有函数
  • 备份系统三要素
  • jquery使用css
  • javascript例题
  • 税务所是县级机构吗
  • 一般纳税人服务费是几个点
  • 一般纳税人开红字发票怎么报税
  • 小规模纳纳税人
  • 网上订机票怎么取票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设