/
githubmirror
/
pm2
Обзор
Документация
Войти
/
githubmirror
/
pm2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
modules/pm2-axon/lib/plugins/queue.js
70 строк
1 KB
Unitech
v7 refactor
08 фев 2026, 17:04
08 фев 2026, 17:04
04fad96
Код
Авторство
О чём код?
/** * Module dependencies. */ var debug = require('debug')('axon:queue'); /** * Queue plugin. * * Provides an `.enqueue()` method to the `sock`. Messages * passed to `enqueue` will be buffered until the next * `connect` event is emitted. * * Emits: * * - `drop` (msg) when a message is dropped * - `flush` (msgs) when the queue is flushed * * @param {Object} options * @api private */ module.exports = function(options){ options = options || {}; return function(sock){ /** * Message buffer. */ sock.queue = []; /** * Flush `buf` on `connect`. */ sock.on('connect', function(){ var prev = sock.queue; var len = prev.length; sock.queue = []; debug('flush %d messages', len); for (var i = 0; i < len; ++i) { this.send.apply(this, prev[i]); } sock.emit('flush', prev); }); /** * Pushes `msg` into `buf`. */ sock.enqueue = function(msg){ var hwm = sock.settings.hwm; if (sock.queue.length >= hwm) return drop(msg); sock.queue.push(msg); }; /** * Drop the given `msg`. */ function drop(msg) { debug('drop'); sock.emit('drop', msg); } }; };