Gearman
BeanstalkD
Gearman | BeanstalkD | |
---|---|---|
2 | 14 | |
724 | 6,477 | |
0.3% | 0.2% | |
5.7 | 0.0 | |
26 days ago | 2 days ago | |
C++ | C | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
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.
Gearman
-
[D] What are the compute options you've considered for your projects?
I am a fan of Gearman to schedule and dispatch distributed jobs, Redis as a collaborative blackboard, and GlusterFS to share models across multiple systems and make bulk data available across the entire system (usually referenced in the blackboard as a pathname).
-
How do you deal with process heavy, long execution time for loops?
At work we typically use Gearman (http://gearman.org/) or Symfony messenger (https://symfony.com/doc/current/messenger.html) to queue up a batch of jobs. And then we use supervisord (http://supervisord.org/) to keep a pool of PHP processes running to process the jobs.
BeanstalkD
-
Ruby 3.3
There's beanstalkd, it has a few Python libraries and it works out of the box with ActiveJob via Backburner.
https://beanstalkd.github.io/
-
A Developer's Journal: Simplifying the Twelve-Factor App
Messaging/Queueing Systems (Amazon SQS, RabbitMQ, Beanstalkd)
- Load Balancing
-
SQL Maxis: Why We Ditched RabbitMQ and Replaced It with a Postgres Queue
Not when a queue is involved. IME trying to replicate something like beanstalkd (https://beanstalkd.github.io/) in postgres is asking for trouble for anything but trivial workloads.
If you're measuring throughput in jobs/s, use a real work queue.
-
Christmas giveaway: 10 copies of my book Domain-driven Design with Golang book, also AMA
Before Kafka was a standard, I created a go library for beanstalkd that act like an RPC.
-
PHP parallel processing idea
Then there are queue libraries like beanstalkd, RabbitMQ or built-in features like queues from Laravel. These will probably get you quicker to your goal then trying the process managing route.
- How to do distributed cronjobs with worker queues?
-
Write Your Own Task Queue
The only task queue I loved was beanstalkd -- it's beautifully written and highly performant. Starting it takes seconds and it's been running for a decade:
https://beanstalkd.github.io/
- Golang task queue
-
What are some popular background job processing frameworks in the Rust ecosystem?
It's not rust (it's C), but beanstalkd is a pretty incredible work queue that processes millions of jobs a day (10K+/s at peak) for my company. I know there are a few rust drivers available.
What are some alternatives?
celery - Distributed Task Queue (development branch)
RabbitMQ - Open source RabbitMQ: core server and tier 1 (built-in) plugins
Apache Kafka - Mirror of Apache Kafka
NATS - High-Performance server for NATS.io, the cloud and edge native messaging system.
Sidekiq - Simple, efficient background processing for Ruby
nsq - A realtime distributed messaging platform
supervisor - Supervisor process control system for Unix (supervisord)
Redis - Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.