Как выполнить значение из объекта coroutine в задаче sync celery?

У меня есть 2 функции - async, которая возвращает объект coroutine со значением int, и функция sync, которая является @shared_task, где переменная должна хранить значение из функции async (int)

Моя async-функция, которая возвращает coroutine с int в ней:

async def club_count(club_id):
    return get_number_of_club(club_id).get_clients_in_club_count(club_id)

Есть моя функция синхронизации, которая shared_task с внесением записи в админку Django Проблема с переменной "club_load", которая должна хранить значение из моей асинхронной функции. Но когда я пытаюсь запустить celery, я получаю ошибку операции между coroutine и int в "procent_club_load"

@shared_task
def get_club_load():

    all_clubs = Club.objects.all()
    
    for club in all_clubs:
        
        if club.monitoring_club_load == True:

            club_load = club_load_json(club.id)
            club_capacity = club.club_load
            procent_club_load = None
            
            if club_capacity:
                procent_club_load = int((club_load / club_capacity)*100)
                        
            club_load_record = ClubLoadModel(
                club_id = club.id,
                created_at = timezone.now(),
                weekday = timezone.localtime().weekday() + 1,
                club_load = club_load,  
                procent_club_load = procent_club_load
            )
            club_load_record.save()
        else:
            pass

Каким решением я могу выполнить значение из объекта coroutine в переменную функции sync, которая является общей задачей?

Я пытаюсь сохранить значение из моей async-функции в переменной sync celery task

Проблема в том, что celery не может делать операции с асинхронными функциями Вторая проблема, что я пытаюсь сделать периодическую задачу с этой общей задачей, но получаю ошибку с объектом coroutine в функции sync

Вы можете использовать asgiref.sync.async_to_sync:

Вы можете выполнить:

from asgiref.sync import async_to_sync

result = async_to_sync(club_count)()
Вернуться на верх