位置: 编程技术 - 正文

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

  • 计提税额与实缴税额的区别是什么?
  • 普票为啥不能抵扣
  • 增值税上月多交税本月怎么办
  • 融资贷款购车
  • 机票行程单改成发票可以报销吗
  • 投资性房地产转为非投资性房地产
  • 未达起征点的税金如何做账
  • 法人可以自己申诉个税吗
  • 一般纳税人印花税税率是多少
  • 银行流动性比例公式
  • 收回次月作废的发票需要做账吗
  • 企业的财务报表
  • 民办非营利组织幼儿园清算时固定资产如何处理
  • 房地产预售房收入如何缴纳增值税
  • 其他应交款入哪个科目
  • 报销购物卡发票公司如何交税?
  • 收到客户承兑怎么做账
  • 企业自建厂房转让如何计算增值税
  • 不动产进项税额抵扣最新通知2023
  • 营改增后开不了增值税发票怎么样办?
  • 吊车租赁费可以开现代服务吗
  • 缴纳投标保证金
  • 税收筹划节税基金有哪些
  • 小规模季度的税收优惠
  • 物业公司收取的广告费开什么发票
  • win10双系统修改名称
  • php模板引擎语法
  • win7右键设置方法
  • 板栗怎样保存1年不坏
  • 新会计准则计入管理费用的税费
  • 外商投资的企业再投资
  • 如何利用路由器登陆花生壳
  • codeigniter 教程
  • phpstudy8
  • 购买材料支出明细表
  • yii2中dropDownList实现二级和三级联动写法
  • css width height
  • 税务申报说明怎么写范文
  • 微信小程序云开发控制台
  • 【历史上的今天】3 月 29 日:“机器人三定律”问世;电脑动画首次获得奥斯卡;Caldera Linux 沉浮史
  • 保险外币业务
  • 小规模纳税人收入是含税还是不含税
  • 试生产期间发生事故后重新
  • mysql的简单操作
  • 织梦模板官网
  • 法人不在公司任职可以吗
  • 厂房无偿使用交税吗
  • 什么叫做公账对公账户
  • 固定资产清理增值税计税依据
  • 对存在标的资产的亏损合同,企业应首先对标的资产
  • 甲企业于2019年3月1日以2000万元取得乙上市公司
  • 存货毁损损失应计入的科目是
  • 如何计算技术转让所得
  • 什么企业可以开培训费发票
  • 科目余额表没有本年累计怎么办
  • 会计应该怎么做职业规划
  • 批量sql语句
  • win7无法运行
  • winxp系统设置密码
  • linux中apt-get和yum
  • hpm是什么格式的文件
  • win8怎么一开机就进入桌面
  • win10 64位系统提示0x80070643错误代码的解决方法
  • win8系统怎么样好用吗
  • 升级win10系统卡住不动了
  • 炉石传说开发人员卡牌
  • js调用xml
  • css基础知识教程
  • 使用jquery操作dom
  • Unity通过图片生成3D模型
  • unityplayer安卓
  • shell 非
  • 请不要重复犯我在学习Python和Linux系统上的错误
  • 常州的居民医保在哪里交
  • 一般纳税人开劳务费税率是多少2023
  • 农机免税范围
  • 汽车发票含税吗
  • 增值税即征即退申报表怎么填
  • 我国现行税法体系中采用多次课征的税种是
  • 小微企业印花税减半政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设