IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> node.js -redis -bull -> 正文阅读

[大数据]node.js -redis -bull

初始化queue

// bullTest.js
'use strict';
const Queue = require('bull');
const queue = new Queue('nike', {
  // redis数据库
  redis: {
    port: 6379,
    host: '127.0.0.1',
    db: 4,
    password: null,
  },
  prefix: 'nike_', // 队列文件
  defaultJobOptions: {
    attempts: 1,
    removeOnComplete: true,
    backoff: false,
    delay: 0,
  },
  // sequelize
  // 1000 ms 最多20000 个作业
  limiter: {
    max: 20000,
    duration: 1000,
  },
  settings: {
    maxStalledCount: 1,
    guardInterval: 1, // 重新调度延迟
    retryProcessDelay: 500, // delay before processing next job in case of internal error.
    // drainDelay: 50000 // 空队列时brpoplpush的等待时间
  },
});
module.exports = queue;

队列基本使用

// test.js
'use strict';
const queue = require('./bullTest');
const random = require('random-string');
const log4js = require('log4js');
const logger = log4js.getLogger();
logger.level = 'info';
queue.on('global:progress', function (jobId, progress) {
  logger.info(`Job ${jobId} is ${progress * 100}% ready!`);
});
queue.on('global:completed', jobId => {
  logger.info(`global:completed Job with id ${jobId} has been completed`);
});
queue.process((job, done) => {
  console.log('消耗-----', job.data);
  done();
});
// queue.on('completed', job => {
//   console.log(`================Job with id ${job.id} has been completed`);
// });
const main = async () => {
  for (let i = 0; i < 7; i++) {
    const job = await queue.add({
      key: random(10),
    }, {
      delay: (3 - i) * (3 - i) * 1000 + 10000, // 表示添加进来的数据延迟多长时间做
      // repeat: {
      //   every: 1000,
      //   limit: 3,
      // },
    });
    logger.info('生产者:', job.data, await queue.count());
  }
  // await queue.add({
  //   key: '154964',
  // }, {
  //   // 重复执行 三次,每次间隔10000
  //   repeat: {
  //     every: 10000,
  //     limit: 3,
  //   },
  // });
  // for (let i = 0; i < 17; i++) {
  //   const job = await queue.add({
  //     key: random(10),
  //   }, {
  //     delay: 5000,
  //   });
  //   logger.info('生产者:', job.data, await queue.count());
  // }
};
main();
// lifo true表示后进先出
// queue.add({foo:'bar'}, {lifo:true});

// 运行
node test.js 

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-22 20:40:12  更:2022-02-22 20:42:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:45:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码