Понимание метода sync_to_async в Django?Python

Программы на Python
Anonymous
Понимание метода sync_to_async в Django?

Сообщение Anonymous »

Я никогда не работал с asyncio и/или асинхронными методами в django, и у меня возникли некоторые трудности с пониманием.
Я пытаюсь преобразовать синхронную служебную функцию (create_email_record) в асинхронную. функция внутри метода формы.
Я минимизирую код для лучшего понимания. Мой метод формы (begin_processing) содержит достаточное количество логики.

Код: Выделить всё

def create_email_record(submission):
print("-----CREATE EMAIL RECORD-------")
creation = EmailRecord.objects.create()

class Form(forms.Form):

comments = forms.TextArea()

def begin_processing():
submission = Submission.objects.get(id=1)
print("----------BEGIN ASYNC--------")
create_email_notification = sync_to_async(create_email_record)(submission)
asyncio.run(create_email_notification)
print("----------END ASYNC----------")
Когда я печатаю это на своем терминале, я думаю ожидать:
("----------BEGIN ASYNC- -------")

("----------END ASYNC----------")

("-----СОЗДАТЬ ЗАПИСЬ ЭЛЕКТРОННОЙ ПОЧТЫ-------")

Я получаю следующее:
("----------НАЧАТЬ АСИНХР.--------")

("-----СОЗДАТЬ ЗАПИСЬ ЭЛЕКТРОННОЙ ПОЧТЫ ------- ")

("----------END ASYNC----------")

Мой объект создается и, кажется, работает, но я не верю, что моя преобразованная функция sync_to_async преобразуется/вызывается правильно.
Возможно, у меня возникли проблемы с пониманием, но что Я хочу вызвать асинхронную функцию из синхронной функции/метода. Я много читал о других публикациях и онлайн-ресурсах, но, похоже, ни один из них не соответствует тому, что я хочу сделать. Я не видел, чтобы это делалось внутри метода формы.

Подробнее здесь: https://stackoverflow.com/questions/787 ... -in-django

Вернуться в «Python»