Celery

Integration with Celery.

Setup

  1. Set up Celery project.

  2. Configure pyot models and pipelines.

# Other imports ...
from pyot.conf.utils import import_confs

# Celery settings stuff ...

import_confs("<pyotconf_import_path>")

Import path is the path used as if the file/module is being imported using python syntax via import, __import__ or importlib.import_module

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.

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