Simple job-runner with features:
- Max simultaneous threads, but also max-per-tag
- Tasks dependent on specific other tasks being complete
- Tasks dependent on all tagged tasks being complete
- Wait for a specific task to complete
- All else being equal, tasks are started in the order they were enqueued.
- Tasks will not start based on:
- max running tasks per tag
- dependency on specific other tasks
- dependency on all tasks tagged by a given set of tags
- Tasks that have to wait maintain their position in the queue.
- Any error stops kicking off new tasks, allows existing tasks to complete, and the error is available.
Build:
npm run build
Unit tests:
npm run test
Unit tests, refreshed live:
npm run watch
Prepare for release (e.g. run tests and bump version number), then publish to npm:
npm run release && npm publish