位置: 编程技术 - 正文

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

  • 增值税需要年度报税吗
  • 关联方的借款用什么科目核算
  • 一般纳税人做账流程图
  • 浅谈报关单填制的常见错误
  • 增值税申报表如何打印
  • 税控盘没有清卡,反写怎么办
  • 医疗保险单位和个人交的区别
  • 公司自用车辆出售如何交税
  • 负债的账面价值减去未来期间计算应纳税所得额
  • 半成品算原材料吗
  • 低值易耗品如何报废
  • 出口退税申报系统汇率修改
  • 去年暂估的库存商品今年到了发票怎么做会计分录
  • 库存生产用钢材属于什么会计科目类别
  • 怎样冲减虚开发票的会计分录
  • 所得税的费用限额怎么算
  • 银行年费计入管理费用还是财务费用
  • 非绑定账户转入啥意思
  • 应收账款周转率怎么分析
  • 长期待摊费用提前清理
  • 公司税务风险怎么解决
  • 临时设施是租入还是租入
  • win11粘滞键怎么关闭 重启后又有
  • iis搭建php环境
  • 企业转手员工工龄怎么算
  • win10无法连接应用商店
  • php 操作mysql
  • 事件循环(Event Loop)
  • 城镇土地使用税的计算公式
  • php连接mysql数据库的几种方式及区别
  • framework启动
  • 企业取得的分红款要交税吗
  • js生成条形码的方式有哪些
  • vue3.0中的ref
  • php运行linux命令
  • html+css网页设计
  • vue-print-nb-jeecg
  • 打车费计入哪个科目
  • 暂估入库会计
  • 织梦怎么用
  • 织梦常用调用标签
  • mongodb cond
  • 轿车折旧年限为几年
  • 期初是什么
  • 工业企业成本如何确定
  • mysql 查找语句
  • mysqlreport显示Com_中change_db占用比例高的问题的解决方法
  • 独立核算和非独立核算怎么查
  • 销售退货会计分录
  • 有进项税额转出,怎么计提附加税
  • 公司为员工购买小汽车属于什么所得
  • 会计凭证的填制与审核实训总结
  • 建筑工程社会实践报告
  • 小规模减免附加税的会计处理
  • 收到红字发票如何入账
  • 发票遗失重开需要收费吗?
  • 应收账款周转率范围多少合适
  • 242104 税控盘
  • 货款已付对方不发货的案例分析
  • 旅游饮食服务企业会计核算的特点包括
  • 旅游,饮食业会议内容
  • sqlserver表结构如何导入到oracle
  • windows2003怎么样
  • linux系统中用户账户有哪些分类
  • vmware虚拟机不能识别iso
  • 电脑太慢了怎么解决
  • win8怎样关闭系统更新
  • mac取消开机启动项
  • win10怎么设置开机启动软件
  • windows xp删除所有数据
  • windowsxp如何隐藏文件
  • win7开机显示一堆英文
  • 听歌播放失败什么意思
  • python算法简单编程题
  • android 笔记软件推荐
  • javascript数据结构与算法第三版
  • python遍历列表的两种方法
  • 广州地税微信公众号
  • 预缴税款怎么做账
  • 草地耕地占用税征收标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设