kombu
gevent
Our great sponsors
kombu | gevent | |
---|---|---|
2 | 5 | |
2,748 | 6,161 | |
1.3% | 0.3% | |
8.9 | 8.7 | |
4 days ago | 2 months ago | |
Python | Python | |
BSD 3-clause "New" or "Revised" License | 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.
kombu
-
Variables pool system
It is feasible and there are a number of ways to do it. There are a few issues, though, mainly how to make sure that you are accessing the latest data and not getting part of the data mid write. A database handles these issues pretty well, since generally they are meant to be an intermediary between different processes. Another solution, that is often more flexible, is a message queue, like this one: https://github.com/celery/kombu
-
Messaging and Madness: Sending Messages with AMQP and Amazon MQ
Above I use the library Kombu to create some connections and send some stuff. I started by setting up our environment variables. Then created exchange and queue objects. Finally, I made our connection object and the producer object, and then we sent a simple “Hello” message.
gevent
-
Is anyone using PyPy for real work?
A sub-question for the folks here: is anyone using the combination of gevent and PyPy for a production application? Or, more generally, other libraries that do deep monkey-patching across the Python standard library?
Things like https://github.com/gevent/gevent/issues/676 and the fix at https://github.com/gevent/gevent/commit/f466ec51ea74755c5bee... indicate to me that there are subtleties on how PyPy's memory management interacts with low-level tweaks like gevent that have relied on often-implicit historical assumptions about memory management timing.
Not sure if this is limited to gevent, either - other libraries like Sentry, NewRelic, and OpenTelemetry also have low-level monkey-patched hooks, and it's unclear whether they're low-level enough that they might run into similar issues.
For a stack without any monkey-patching I'd be overjoyed to use PyPy - but between gevent and these monitoring tools, practically every project needs at least some monkey-patching, and I think that there's a lack of clarity on how battle-tested PyPy is with tools like these.
- SynchronousOnlyOperation from celery task using gevent execution pool on django orm
-
How to Choose the Right Python Concurrency API
I'm not sure how much it replicates the CSP model, but the closest thing I've found to Go-style concurrency in Python is gevent: https://github.com/gevent/gevent
I personally still prefer to use it in all my projects.
-
I have a problem with installing Ajenti on a 64bit Ubuntu 21.04 server
Greenlet seems to have some troubles compiling with Python 3.9. https://github.com/gevent/gevent/issues/1627
What are some alternatives?
celery - Distributed Task Queue (development branch)
eventlet - Concurrent networking library for Python
pika - Pure Python RabbitMQ/AMQP 0-9-1 client library
Ray - Ray is a unified framework for scaling AI and Python applications. Ray consists of a core distributed runtime and a set of AI Libraries for accelerating ML workloads.
rq - Simple job queues for Python
Faust - Python Stream Processing
huey - a little task queue for python
Thespian Actor Library - Python Actor concurrency library
rele - Easy to use Google Pub/Sub
Tomorrow - Magic decorator syntax for asynchronous code in Python
KQ - Kafka-based Job Queue for Python
aiochan - CSP-style concurrency for Python