node-resque
Advanced tools
Comparing version 8.2.9 to 9.0.0
@@ -6,3 +6,3 @@ { | ||
"license": "Apache-2.0", | ||
"version": "8.2.9", | ||
"version": "9.0.0", | ||
"homepage": "http://github.com/actionhero/node-resque", | ||
@@ -27,16 +27,16 @@ "repository": { | ||
"engines": { | ||
"node": ">= 8" | ||
"node": ">=12.0.0" | ||
}, | ||
"dependencies": { | ||
"ioredis": "^4.27.1" | ||
"ioredis": "^4.27.2" | ||
}, | ||
"devDependencies": { | ||
"@types/ioredis": "^4.26.0", | ||
"@types/ioredis": "^4.26.4", | ||
"@types/jest": "^26.0.23", | ||
"@types/node": "^15.0.1", | ||
"ioredis-mock": "^5.5.4", | ||
"@types/node": "^15.3.0", | ||
"ioredis-mock": "^5.5.6", | ||
"jest": "^26.6.3", | ||
"node-schedule": "^2.0.0", | ||
"prettier": "^2.2.1", | ||
"ts-jest": "^26.5.5", | ||
"prettier": "^2.3.0", | ||
"ts-jest": "^26.5.6", | ||
"ts-node": "^9.1.1", | ||
@@ -43,0 +43,0 @@ "typedoc": "^0.20.36", |
@@ -5,3 +5,3 @@ # node-resque: The best background jobs in node. | ||
The full API documentation for this package is automatically generated from the `master` via [typedoc](https://typedoc.org) branch and published to https://node-resque.actionherojs.com/ | ||
The full API documentation for this package is automatically generated from the `main` via [typedoc](https://typedoc.org) branch and published to https://node-resque.actionherojs.com/ | ||
@@ -12,2 +12,20 @@ [![Nodei stats](https://nodei.co/npm/node-resque.png?downloads=true)](https://npmjs.org/package/node-resque) | ||
## The Resque Factory (How It Works) | ||
### Overview | ||
Resque is a queue based task processing system that can be thought of as a "Kanban" style factory. Workers in this factory can each only work one Job at a time. They pull Jobs from Queues and work them to completion (or failure). Each Job has two parts: instructions on how to complete the job (the `perform` function), and any inputs necessary to complete the Job. | ||
### Queues | ||
In our factory example, Queues are analogous to conveyor belts. Jobs are placed on the belts (Queues) and are held in order waiting for a Worker to pick them up. There are three types of Queues: regular work Queues, Delayed Job Queues, and the Failed Job Queue. The Delayed Job Queues contains Job definitions that are intended to be worked at or in a specified time. The Failed Job Queue is where Workers place any Jobs that have failed during execution. | ||
### Workers | ||
Our Workers are the heart of the factory. Each Worker is assigned one or more Queues to check for work. After taking a Job from a Queue the Worker attempts to complete the Job. If successful, they go back to check out more work from the Queues. However, if there is a failure, the Worker records the job and its inputs in the Failed Jobs Queue before going back for more work. | ||
### Scheduler | ||
The Scheduler can be thought of as a specialized type of Worker. Unlike other Workers, the Scheduler does not execute any Jobs, instead it manages the Delayed Job Queue. As Job definitions are added to the Delayed Job Queue they must specify when they can become available for execution. The Scheduler constantly checks to see if any Delayed Jobs are ready to execute. When a Delayed Job becomes ready for execution the Scheduler places a new instance of that Job in its defined Queue. | ||
## API Docs | ||
@@ -215,2 +233,3 @@ | ||
- You can (and should) run many instances of the scheduler class at once, but only one will be elected to be the 'leader', and actually do work. | ||
- The 'delay' defined on a scheduled job does not specify when the job should be run, but rather when the job should be enqueued. This means that `node-resque` can not guarantee when a job is going to be executed, only when it will become _available_ for execution (added to a Queue). | ||
@@ -217,0 +236,0 @@ ## Configuration Options: |
688214
110
670
Updatedioredis@^4.27.2