UNPKG

@morjs/utils

Version:
31 lines 1.16 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.QUEUE = exports.DEFAULT_CONCURRENCY = void 0; const os_1 = __importDefault(require("os")); const p_queue_1 = __importDefault(require("p-queue")); const constants_1 = require("./constants"); /** * 基于内存的默认并发数 */ const DEFAULT_CONCURRENCY_BY_MEM = Math.floor(os_1.default.totalmem() / 1073741824 / 2); /** * 基于CPU数量的默认并发数 */ const DEFAULT_CONCURRENCY_BY_CPUS = Math.floor(os_1.default.cpus().length / 2); /** * 默认并发数, 最大允许 8 个并发 */ exports.DEFAULT_CONCURRENCY = Math.min(DEFAULT_CONCURRENCY_BY_MEM, DEFAULT_CONCURRENCY_BY_CPUS, 8) || 1; /** * 模块处理队列 */ exports.QUEUE = new p_queue_1.default({ concurrency: exports.DEFAULT_CONCURRENCY, // 过期时间设置为 2倍 x (重试次数+1) x COMMAND_TIMEOUT timeout: constants_1.COMMAND_TIMEOUT * (constants_1.RETRY_TIMES + 1) * 2, throwOnTimeout: true }); //# sourceMappingURL=queue.js.map