Releases: actionhero/node-resque
v6.0.9
Emit Duration (#320)
We now emit duration
for success and failure events:
worker.on("success", (queue, job, result, duration) => {
console.log(
`job success ${queue} ${JSON.stringify(job)} >> ${result} (${duration}ms)`
);
});
worker.on("failure", (queue, job, failure, duration) => {
console.log(
`job failure ${queue} ${JSON.stringify(
job
)} >> ${failure} (${duration}ms)`
);
});
v6.0.8
Use multi
transactions to increase safety with delayed jobs (#318)
We now uses Redis transactions (with multi) when enqueuing a delayed job and deleting a delayed job queue.
We need to invoke the "watch" command by the scheduler to be notified of any changes to the delayed queue we are about to delete. Then we check that its length is 0. If it isn't we exit. If it is, we start preparing the new multi() command to delete the queue and its entry in delayed_queue_schedule
. If a new job is inserted while we are doing this, the "watch" command will prevent the delete from succeeding.
Otherwise, even in the race condition when a job is being added to the same delayed queue that is being removed, the scheduler will remove the queue and entry in delayed_queue_schedule
, and then the enqueue will add it back again.
v6.0.7
- Update dependancies to latest versions
- update type of JobEmit to include args
v6.0.6
v6.0.4
Types Updates
- Export Job, ConnectionOptions, and ErrorPayload
- Include event types for Worker, Scheduler, Queue, and Multiworker
Thanks to https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/node-resque/index.d.ts for lots of hints
v6.0.2 - Ownership moved to Actionhero Org
This release changes the ownership of the project from the @taskrabbit org to @actionhero.
v6.0.1 - Typescript
- Move all src, test, and examples to typescript
- Provide Type definitions
- Move from
standard
toprettier
for linting and formatting - Configure jest to use the
ts-node
transformer so we can test typescript files directly
We now have a new automatically-built Typedoc webiste @ https://node-resque.actionherojs.com/
v5.5.7
v5.5.6
Update connection logic to always await a test key write to ensure that the connection is ready before returning
solved #293
This made connection.connect
(and therefore worker.connect
and scheduler.connect
) awaitable until we are really sure that we can read and write to redis.
We rely on the fact that both node-redis and ioredis will buffer and retry redis commands until they either succeed, timeout, or fail. This allows us to skip the on('connected')
event and simply wait until we can read data from redis
Update all dependencies
This includes moving to standard v14 which included some large changes to the linter rules
v5.5.5
Fix Atomic JobLock Key Setting
Similar to #283 which made the scheduler atomically get its lock, have the JobLock plugin atomically get its lock so that a crash doesn't cause the lock to be held forever.
Fixed by @jpulec via #285 and @evantahler via 1c5273c
Test with Circle CI
We now test all commits & PRs with Circle CI! See the results here: https://circleci.com/gh/taskrabbit/workflows/node-resque
Fixed by @evantahler via #289