Celery
Integration with Celery.
Setup
Set up Celery project.
Configure pyot models and pipelines.
# Other imports ...
from pyot.conf.utils import import_confs
# Celery settings stuff ...
import_confs("<pyotconf_import_path>")
Tasks
Celery does not support async functions, a util wrapper is provided async_to_sync
in pyot.utils.sync
to convert async functions into blocking functions.
Celery runs tasks in threads or processes, make sure to use resource managers for graceful handling of resources, refer to Cores -> Resources.
from pyot.core.resources import resource_manager
from pyot.utils.sync import async_to_sync
# ...
@app.task
@async_to_sync
@resource_manager.as_decorator
async def task_using_decorator():
...
# OR
@app.task
@async_to_sync
async def task_using_context_manager():
async with resource_manager():
...
Last updated