位置: 编程技术 - 正文

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

  • 非盈利组织确认及所得税汇算怎么做
  • 出口退税附加税分录怎么写
  • 出纳与会计现金对不上
  • 建筑公司增值税税率9%
  • 金税系统维护费可以全额抵扣吗
  • 索赔费用项目
  • 非营利组织可以开发票吗
  • 委托在建工程会计分录
  • 委外研发费用如何开票
  • 承包工程会计账务处理流程
  • 企业将活期存款转为定期时
  • 虚开发票对所得税的影响是怎样的?
  • 政府扶持资金是什么意思
  • 收汇结汇的账务处理
  • 进项5万出项6万,需交多少税
  • 股东投进来的钱可以放哪个科目
  • 什么叫保理支付
  • 新会计准则规定资产如何入账
  • 消费税在哪个环节征税
  • 存货跌价准备的金额
  • 如何计算净利润增长率
  • 总公司中标分公司结算可以吗
  • 纳税人外购下列已税消费品
  • 先征后退的增值税
  • 所有者权益变动表图片
  • 企业的党员活动是什么
  • 分配利润的会计科目
  • php-fig
  • 中科大ustc-guest
  • 企业在什么情况下会被列入经营异常
  • 资产负债表应交税费计算公式
  • php动态生成网页
  • 快递行业一般纳税人税率是多少
  • wordpress限制ip访问
  • 其他资本公积核算科目
  • 融资租入固定资产的入账价值
  • 报税金额和开票统计不一致
  • 销售成本是付现成本吗
  • 防暑降温用品进口品牌
  • 稳岗补贴属于是什么补贴
  • sql字符串处理函数
  • 资产负债表中的货币资金包括哪些
  • 借递延所得税资产贷递延所得税费用
  • 预收账款确认的条件
  • 税收返还会计处理方法
  • 暂估入库的商品作暂估冲红会计分录
  • 人力资源服务费是什么意思
  • 其他非流动资产是金融资产吗
  • 免税行业可以开3个点发票吗
  • 个人无偿赠与不动产税收管理
  • 主营业务利润率反映了企业的什么能力
  • 什么是加计扣除农产品进项税额
  • 会计电算化建账的基本流程有哪些
  • 企业未分配利润包括哪些
  • 快启动u盘pe怎么安装系统详细图文教程
  • window service2008r2激活
  • Win7旗舰版系统文件名称
  • nkvmon.exe - nkvmon是什么进程 有什么用
  • window.location.href怎么加请求头
  • 批处理常用命令总结
  • perl中qw
  • 第四章之BootStrap表单与图片
  • base如何使用
  • css placement
  • Linux进程间通信——使用流套接字
  • javascript例题
  • angularjs4
  • js如何判断一个变量的类型
  • 简介生成
  • javascript要怎么学
  • python中的省略号怎么打
  • 置顶语句子
  • jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
  • python ping检测
  • js赋值input
  • 什么叫开源库
  • swift协议范型
  • 充电桩充电怎么收费,几种收费方法
  • 宁波市国家税务局网上办税服务厅
  • 餐厅税务依据有哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设