Celery Integration For Fastack
Project description
fastack-celery
Simple package to integrate celery with fastack.
To-do
There are several to-do lists for the future
- See #1
Installation
pip install fastack-celery
Usage
Create celery app
Copy the code below and put it in app/main.py
:
from fastack_celery import make_celery
celery = make_celery(app)
You can also pass parameters to the celery app.
Configuration
For celery configuration, you can create it via Celery
class in your app settings. For example:
# app/settings/local.py
class Celery:
broker_url = "amqp://strong_user:strong_password@localhost:5672/celery_vhost"
result_backend = "redis://localhost:6900/0"
For other celery configurations, see here https://docs.celeryproject.org/en/stable/userguide/configuration.html#new-lowercase-settings
Create a task
You can create tasks using the shared_task
decorator:
# app/tasks.py
# Sample task from examples/celery/app/tasks.py
@shared_task
def counter_task(id: int):
session = db.open()
with session.begin():
obj: Counter = session.query(Counter).where(Counter.id == id).first()
if obj:
print(f"start counting #{id}")
obj.counter += 1
state = obj.state
if state is None or state == Counter.State.NOT_IN_QUEUE:
obj.state = Counter.State.NOT_IN_QUEUE
elif state == Counter.State.TERMINATED:
task_id = obj.task_id # or current_task.request.id
celery.control.revoke(task_id, terminate=True)
obj.task_id = None
else:
obj.state = Counter.State.IN_QUEUE
counter_task.apply_async(args=(id,), countdown=1, task_id=obj.task_id)
obj.save(session)
else:
print(f"Object with id #{id} not found")
By default, all tasks must be stored in app/tasks.py
which will be automatically imported by the make_celery
function.
Running celery workers
cd your-project
celery -A app.main:celery worker -l info
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file fastack-celery-0.1.0.tar.gz
.
File metadata
- Download URL: fastack-celery-0.1.0.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.8.10 Linux/5.11.0-46-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e2e4e8e5d1d76bded23bea90c86cf0676b0e33cc17708b0f28e2c01d2884b43 |
|
MD5 | 8a060250ca2dd392eeffc586071bc00c |
|
BLAKE2b-256 | 6e5e3a178ffe6c0abe69d1fa35ce79f937fbfd11f64f2ecce609f2837a3c8160 |
File details
Details for the file fastack_celery-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: fastack_celery-0.1.0-py3-none-any.whl
- Upload date:
- Size: 3.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.8.10 Linux/5.11.0-46-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e1962fc29fe99c4e7ff281c40586929e875a24ac9ade3571bd2e714b1deea60 |
|
MD5 | 847b40e4da28bc52bdfd4ac7f7a740fb |
|
BLAKE2b-256 | 10be970fd9ab645edde8188a237b9e258d94b9fc98fb8f6a3098fd95fe5823c6 |