Registry / storage / ftp-management-queue

ftp-management-queue

JSON →
library5.7.1jsnpmunverified

Queue-based file processing system for FTP/SFTP servers (v5.7.1). Uses Kue (Redis-backed) to monitor upload directories, enqueue files, and process them with user-defined callbacks. Supports multiple FTP configurations, file format filtering, and concurrency control. Differentiates itself by combining FTP monitoring with job queue management, handling file state transitions (upload → enqueued → processing → processed/error). Stable but infrequently updated. Requires Redis and Kue as peer dependencies.

npm install ftp-management-queue
INSTALL
IMPORT
SIG · FTP-MANAGEMENT-QUE
F
ftp-management-queue
storagejavascriptv5.7.1
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default
const FtpManagementQueue = require('ftp-management-queue'); FtpManagementQueue(options);
import FtpManagementQueue from 'ftp-management-queue';
Package uses CommonJS and exports a function. ES import may not work without special configuration.
factory
const FtpManagementQueue = require('ftp-management-queue');
const { FtpManagementQueue } = require('ftp-management-queue');
Exported directly as function, not as named export.
function call
FtpManagementQueue(options);
const queue = new FtpManagementQueue(options);
Library is invoked as a function, not a constructor. No 'new' keyword.

Basic setup that monitors an FTP directory, enqueues CSV files, and processes them with a custom callback that runs for 10 seconds.

const kue = require('kue'); const queue = kue.createQueue(); const processFile = (params, cb) => { console.log(`Processing file: ${params.fileName}`); setTimeout(() => { cb(); }, 10000); }; const options = { queue, fileFormats: ['.csv'], numberOfProcess: { itemsManagerProcess: 1, fileBatchProcess: 1 }, processNames: { manager: 'manager-queue', processor: 'processor-queue' }, items: [ { id: '1', name: 'Brand1', priority: 'normal', type: 'ftp', ftp: { host: process.env.FTP_HOST ?? '', port: 21, user: process.env.FTP_USER ?? '', password: process.env.FTP_PASSWORD ?? '' }, dir: { upload: '/path/to/upload', enqueued: '/path/to/enqueued', processing: '/path/to/processing', error: '/path/to/error', processed: '/path/to/processed', backup: '/path/to/backup' } } ], customCallback: processFile, filePath: __dirname }; const FtpManagementQueue = require('ftp-management-queue'); FtpManagementQueue(options);
Debug
Known issues
gotchaThe library mutates the options object; do not reuse the same options object for multiple calls.
fix
Create a fresh options object for each FtpManagementQueue call.
affects: *
deprecatedKue is no longer actively maintained; consider Bull or Bee-Queue for new projects.
fix
Use Bull with 'ftp-management-queue' wrapper or switch to a different queue-based FTP processor.
affects: >=5.0.0
gotchaAll directory paths must be absolute; relative paths may cause unexpected behavior.
fix
Use path.resolve(__dirname, 'relative/path') or absolute paths.
affects: *
breakingRemoved support for XML file parsing in v5. Refer to XML-specific options no longer work.
fix
If you need XML processing, stay on v4.x or handle XML parsing in customCallback.
affects: >=5.0.0
gotchaThe library assumes Redis is running on default localhost:6379. No connection error handling.
fix
Ensure Redis is installed and running. Use queue.client for advanced configuration.
affects: *
Errors
Common errors & fixes
Error: Job cannot be created without a type
Missing or incorrect queue name in processNames.
fix
Ensure processNames.manager and processNames.processor are defined as non-empty strings.
TypeError: Cannot read property 'log' of undefined
customCallback is invoked without proper 'this' context for job logging.
fix
Make sure to bind the job context or reference 'this.job' correctly (see README snippet).
Error: connect ECONNREFUSED 127.0.0.1:6379
Redis server is not running or not accessible.
fix
Start Redis server: 'redis-server' or set via environment variable REDIS_URL.
Error: ENOTDIR: not a directory, scandir '/path/to/upload'
One of the directory paths specified does not exist or is a file.
fix
Create all required directories (upload, enqueued, processing, error, processed, backup) before starting.
Upgrade
Version history
5.7.1latest on npm
Audit
Dependencies
kuerequiredRedis-backed job queue used for queue management and processing
redisrequiredKue depends on Redis server
Agent activity
26 hits · last 30 days
node
24
Amazon
1
Resources
ftp-management-queue — npm install ftp-management-queue · libregistry