Director is a simple and rapid framework used to manage tasks and build workflows using Celery.
The objective is to make Celery easier to use by providing :
See how to use Director with the quickstart and guides in the documentation.
Install the latest version of Director with pip (requires at least Python 3.7
):
pip install celery-directorWrite your code in Python
# tasks/orders.py from director import task from .utils import Order, Mail @task(name="ORDER_PRODUCT") def order_product(*args, **kwargs): order = Order( user=kwargs["payload"]["user"], product=kwargs["payload"]["product"] ).save() return {"id": order.id} @task(name="SEND_MAIL") def send_mail(*args, **kwargs): order_id = args[0]["id"] mail = Mail( title=f"Your order #{order_id} has been received", user=kwargs["payload"]["user"] ) mail.send()Build your workflows in YAML
# workflows.yml product.ORDER: tasks: - ORDER_PRODUCT - SEND_MAIL
You can simply test your workflow in local :
$ director workflow run product.ORDER '{"user": 1234, "product": 1000}'
And run it in production using the director API :
$ curl --header "Content-Type: application/json" \ --request POST \ --data '{"project": "product", "name": "ORDER", "payload": {"user": 1234, "product": 1000}}' \ http://localhost:8000/api/workflows
Read the documentation to try the quickstart and see advanced usages of Celery Director.
.env # The configuration file.
workflows.yml # The workflows definition.
tasks/
example.py # A file containing some tasks.
... # Other files containing other tasks.
director init [path]
- Create a new project.director celery [worker|beat|flower]
- Start Celery daemons.director webserver
- Start the webserver.director workflow [list|show|run]
- Manage your project workflows.See https://github.com/ovh/celery-director/blob/master/LICENSE
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4