stable-fluids
celery
stable-fluids | celery | |
---|---|---|
2 | 53 | |
202 | 25,925 | |
- | 1.8% | |
0.0 | 9.6 | |
about 3 years ago | 1 day ago | |
Python | Python | |
The Unlicense | 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.
stable-fluids
-
Fluid Simulation Clock with Raspberry Pi 4 and Python
For the lazy like me: https://github.com/GregTJ/stable-fluids
-
Unstable Flow
Created using a work-in-progress version of my Python based fluid simulator (unpublished, though the current version can be found here: https://github.com/GregTJ/stable-fluids)
celery
- New Year's Security Incident
-
HTTP 429 Too Many Requests: Learn to Manage Request Limits
One thing to note is if you need a response from the external API or not. If you don't, you can use a task queue (ex. Celery) which allows you to control task execution (ie. external API calls) rates and implement backoff strategies effortlessly. This allows you to eventually make all the calls you want, so long as the timing they get made isn't important. If you do require a response from the API - you can switch to a Websocket approach, where responses will be streamed back to the client (from the gateway) once the calls are made.
-
PostgreSQL as a Celery Broker
I came across this GitHub issue discussing PostgreSQL as a potential Celery broker. This led me to discover an interesting alternative task queue called BQ, which is built specifically to use PostgreSQL for task management.
-
Hacktoberfest 2024: 3rd Contribution
The original implementation ran a Celery task that deleted notifications older than 90 days on a daily basis (original feature PR).
-
RabbitMQ 4.0 Released
There are some limitations when using Quorum Queues, this was only patched recently - https://github.com/celery/celery/issues/9149
- Vanilla Python Packaging
-
Automatically reload Celery workers with a custom Django command
Celery previously had an --autoreload flag that has since been removed. However, Django has automatic reloading built into its manage.py runserver command. The absence of automatic reloading in Celery workers creates a confusing development experience: updating Python code causes the Django server to reload with the current code, but any tasks that the server fires will run stale code in the Celery worker.
-
Ask HN: What's the right tool for this job?
From what I've seen, there are sort of two paths. I'll provide a well known example from each.
1. lang specific distributed task library
For example, in Python, celery is a pretty popular task system. If you (the dev) are the one doing all the code and running the workflows, it might work well for you. You build the core code and functions, and it handles the processing and resource stuff with a little config.
* https://github.com/celery/celery
Or lower level:
* https://github.com/dask/dask
2. DAG Workflow systems
There are also whole systems for what you're describing. They've gotten especially popular in the ML ops and data engineering world. A common one is AirFlow:
* https://github.com/apache/airflow
-
Kaskade (TUI for Kafka) protobuf support is out
https://github.com/celery/celery/issues/7674#issuecomment-12... .. https://news.ycombinator.com/item?id=40842365
-
Show HN: Drop-In SQS Replacement Based on SQLite
https://docs.celeryq.dev/en/stable/getting-started/backends-...
Celery's flower utility doesn't work with SQS or GCP's {Cloud Tasks, Cloud Pub/Sub, Firebase Cloud Messaging FWIU} but does work with AMQP, which is a reliable messaging protocol.
RabbitMQ is backed by mnesia, an Erlang/OTP library for distributed Durable data storage. Mnesia: https://en.wikipedia.org/wiki/Mnesia
SQLite is written in C and has lots of tests because aerospace IIUC.
There are many extensions of SQLite; rqlite, cr-sqlite, postlite, electricsql, sqledge, and also WASM: sqlite-wasm, sqlite-wasm-http
celery/kombu > Transport brokers support / comparison table: https://github.com/celery/kombu?tab=readme-ov-file#transport...
Kombu has supported Apache Kafka since 2022, but celery doesn't yet support Kafka: https://github.com/celery/celery/issues/7674#issuecomment-12...
What are some alternatives?
pysph - A framework for Smoothed Particle Hydrodynamics in Python
NATS - High-Performance server for NATS.io, the cloud and edge native messaging system.
pybobyqa - Python-based Derivative-Free Optimization with Bound Constraints
dramatiq - A fast and reliable background task processing library for Python 3.
Stable-Fluids - Real-time simulation of Stable Fluids, Jos Stam, SIGGRAPH 1999.
huey - a little task queue for python