Как использовать асинхронную функцию внутри задачи celery?

Я пишу бот в айограм, нашел несколько похожих вопросов, но не смог найти то, что мне нужно. У меня есть асинхронная функция, которую я хочу использовать в своей задаче celery, но не могу вызвать ее внутри задачи. Есть ли способ сделать это?
db.py

async def select_users():
    sql = "SELECT * FROM Users WHERE "
    sql, parameters = self.format_args(sql, parameters=kwargs)
    return await self.execute(sql, *parameters, fetchrow=True)

tasks.py

from .celery import app
import db

@app.task
def update_credits():
    users = db.select_users()  #как вызвать асинхронную функцию?
    print(users)

Ответы (1 шт):

Автор решения: eri

Пока не очень хочется залезать в celery, но если там обычные воркеры, то должно сработать:

from .celery import app
import db
import asyncio

@app.task
def update_credits():
    users = asyncio.run(db.select_users())
    print(users)

Если не прокатит, то напиши в комментариях ошибку... есть ещё варианты.

П.с. обрати внимание на self - она не определенна.

→ Ссылка