The gist
BullMQ - Message Queue and Batch processing for NodeJS and Python based on Redis (by taskforcesh)
agenda
Lightweight job scheduling for Node.js (by agenda)
Our great sponsors
The gist | agenda | |
---|---|---|
26 | 21 | |
5,182 | 9,236 | |
4.9% | 0.5% | |
9.7 | 0.0 | |
7 days ago | 23 days ago | |
TypeScript | TypeScript | |
MIT License | GNU General Public License v3.0 or later |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
The gist
Posts with mentions or reviews of The gist.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-07-06.
-
Object Narrowing in Typescript with Graphile Worker
Graphile worker has been great for me because it's a library that works with Postgres that allows me to queue jobs and execute them on the server without adding too many additional layers of complexity for being able to accomplish async tasks. (I'm aware of how popular bull is, but I don't want to add another data-store only for async tasks)
-
Job Schedulers for Node: Bull or Agenda?
Bull is currently in maintenance mode, we are only fixing bugs. For new features check BullMQ, a modern rewritten implementation in Typescript. You are still very welcome to use Bull if it suits your needs, which is a safe, battle-tested library.
-
Are there any generally accepted standards for inter-microservice communication? Or does everyone just go it their own?
I use bullmq with node
-
Next.js background jobs
You might consider using a queue for processing the request. I've found bullMQ, which works with Redis, to be a nice developer experience.
-
What is a good background scheduler?
BullMQ is a pretty solid choice: https://github.com/taskforcesh/bullmq It's the successor of Bull: https://github.com/OptimalBits/bull
-
How to schedule tasks in a Node.js app ๐
BullMQ
-
First time building microservice-based application
For Node.JS you can use something like BullMQ (https://github.com/taskforcesh/bullmq) and then dispatch jobs to the message queue with your worker handling the jobs. You can read about an example for Bull MQ here (https://deadsimplechat.com/blog/best-nodejs-schedulers/#2-bull)
-
Is my health check endpoint good enough?
bullmq seems like an open issue
-
Help implementing Heroku Data For Redis (+bull & throng) / `ioredis`
In order to try and mitigate the OOMs. I read the Background Jobs in Node.JS with Redis blog post and implemented Heroku Data For Redis with ioredis, BullMQ and Throng,
- BullMQ โ fastest, most reliable, Redis-based distributed queue for Node
agenda
Posts with mentions or reviews of agenda.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2024-04-12.
-
Next.js vs Node.js: A Modern Contrast
While many ways to write scalable Node.js applications exist, all narrow down to the underlying architecture. However, common hurdles in Node.js include serving static files, task scheduling, and utilizing available resources. To combat these, you can use a tactical approach. Because serving static assets with Node.js takes CPU time, a proxy content delivery network like CloudFront should help fix it. Recurring tasks need to fire events, which isnโt reliable with setTimeout or setInterval. As a solution, you can use a task scheduler framework like agenda.js. To handle resource utilization, you can use the cluster feature in Node.js, which listens to ports, accepts new connections, and distributes them across workers with built-in smarts to avoid overloading the process.
-
MongoDB Materialized Views in NodeJS + Mongoose
Now we have the materialized view and we need to update it daily. For this, we'll use Agenda, a light-weight job scheduling library for Node.js with Mongo backed persistence layer.
-
10 Powerful Node.js Libraries Every Developer Should Know About
6. agenda
-
Contributing to Open Source: How We Crafted Agenda Admin
There are many job queue implementations for Node.js, including Bull, Bee, and Agenda.
-
Scheduled tasks with multiple web servers
Agenda JS is an alternative to bull that uses MongoDB rather than redis. Not saying one is better than the other, just giving alternatives.
-
Using memory storage vs disk storage
If processing the file is going to take a relatively long time, you should send it to some asynchronous background process and immediately send a response to the user with status 202, then notify them later somehow if processing the file failed. Agenda is a good candidate for scheduling/managing more complex background tasks like this.
-
Need help developing auto logout feature
So I thought of 2 approaches, one using [agenda](https://github.com/agenda/agenda] and other using setTimeouts and storing the unique id for particular user in database. I am not sure which of the approach is scalable and maintainable in long run for thousands of users having daily activities.
- How are you doing recurring jobs & queued jobs in Node?
-
Can someone explain the CommonJS require pattern used in the Agenda docs example project?
i think it would be helpful if you provided some links to what you're talking about. How on earth are we supposed to help without knowing which agenda package you're referring to? I went through the agenda github repo and not one of those files mentioned in your post even exists in that repo........
-
Beware of Promise.all
For more advanced use cases, you might want to look into using a full-featured job queue instead like bree, bull, or agenda.
What are some alternatives?
When comparing The gist and agenda you can also consider the following projects:
bull - Premium Queue package for handling distributed jobs and messages in NodeJS.
Bee-Queue - A simple, fast, robust job/task queue for Node.js, backed by Redis.
node-cron - Cron for NodeJS.
better-queue - Better Queue for NodeJS
bree - Bree is a Node.js and JavaScript job task scheduler with worker threads, cron, Date, and human syntax. Built for @ladjs, @forwardemail, @spamscanner, @cabinjs.
RedisSMQ - A simple high-performance Redis message queue for Node.js.
husky - Git hooks made easy ๐ถ woof!
kue - Kue is a priority job queue backed by redis, built for node.js.
strip-bom - Strip UTF-8 byte order mark (BOM) from a string
node-cron - A simple cron-like job scheduler for Node.js