I am using kue: https://github.com/learnboost/kue . It is pretty nice.
The official features and my comments:
- delayed jobs.
- If you want to let the job run at a specific time, calculate the milliseconds between that time and now. Call job.delay(milliseconds) (The doc says minutes, which is wrong.) Don't forget to add "jobs.promote();" when you init jobs.
- job event and progress pubsub.
- rich integrated UI.
- Very useful. You can check the job status (done, running, delayed) in integrated UI and don't need to write any code. And you can delete old records in UI.
- infinite scrolling
- Sometimes not working. Have to refresh.
- UI progress indication
- Good for the time-consuming jobs.
- job specific logging
- Because they are delayed jobs, you should log useful info in the job and check later through UI.
- powered by Redis
- Very useful. When you restart your node.js app, all job records are still there and the scheduled jobs will execute too!
- optional retries
- full-text search capabilities
- RESTful JSON API
- Sound good, but I never use it.
Edit:
- kue is not a cron like library.
- By default kue does not supports job which runs repeatedly (e.g. every Sunday).