Это хороший способ сделать метод API асинхронным?

Это хороший способ сделать метод API асинхронным?

У меня есть API, который создает пользователя и отправляет код подтверждения на электронную почту пользователя. Токен JWT генерируется после отправки электронной почты на электронную почту пользователя, поэтому я сделал метод асинхронным, а также API. Итак, это хороший подход или, пожалуйста, укажите, какой подход лучше всего подходит для обработки такого типа запроса.

Я использую работу с фреймами сущностей, поэтому проблема в том, что sendEmail - это другой метод. Если я не делаю это асинхронным, он дает «Не удается получить доступ к удаленному экземпляру контекста».

Закрыть -> Требуется больше внимания. Без дополнительной информации просто невозможно ответить. Использование имеет значение. В итоге мне пришлось предоставить собственный HTTP-клиент, потому что Microsoft не предоставила полностью синхронный API. (Да, есть вызов синхронизации. Он не синхронизируется полностью и может зайти в тупик, если над вами есть await.)

Joshua 04.06.2023 04:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Использование асинхронного кода может во многом зависеть от вашего приложения и конкретных требований.

Асинхронный запуск кода может увеличить нагрузку из-за переключения потоков, но такой подход также может ускорить цикл запроса-ответа и позволить вашему приложению обрабатывать больше запросов одновременно.

Распространенным заблуждением является то, что использование ключевого слова async неизменно приводит к более быстрому получению ответов. Это верно только в том случае, если у вас есть возможность выполнять несколько вызовов ввода-вывода одновременно. В таком сценарии общее время выполнения будет примерно равно продолжительности самой длинной одиночной операции. Однако маловероятно, что одна асинхронная операция превзойдет синхронную операцию.

Еще одна причина для создания асинхронных методов — освободить потоки для обслуживания других запросов, пока обрабатывается текущий вызов ввода-вывода. Это больше связано с лучшим использованием ресурсов, чем с чистой производительностью.

Таким образом, если ваши проблемы связаны с оптимизацией использования ЦП/потоков или если у вас есть возможность выполнять несколько вызовов одновременно, то внедрение асинхронности может быть полезным. С другой стороны, если эти условия не выполняются, использование асинхронного программирования может не иметь существенных преимуществ перед синхронным программированием.

Говоря о проблеме, связанной с удалением контекста, предоставьте более подробную информацию о вашем коде.

Адалят Назиров, спасибо за краткое объяснение, о контексте БД, я вызываю репозиторий формы внешнего метода, куда вводится контекст БД. Если я не сделаю внешний метод асинхронным ожиданием, он выдаст «Не удается получить доступ к удаленному экземпляру контекста». Но если я сделаю его асинхронным ожиданием, то он отлично работает. Поскольку внешний метод является асинхронным ожиданием, я должен сделать метод репозитория, а также метод контроллера API асинхронным ожиданием. Вот почему у меня есть опасения, хороший ли это подход или нет.

Muhammad Bilal 05.06.2023 06:13

@MuhammadBilal исключение, которое вы получаете, выглядит как ошибка. Текущий вопрос закрыт модератором, пожалуйста, создайте новый вопрос по проблеме, предоставив как можно больше подробностей, включая фрагменты кода.

Adalyat Nazirov 05.06.2023 08:49

Другие вопросы по теме