ServiceStack: асинхронные / ожидающие обработчики службы - PullRequest
2 голосов
/ 19 июня 2019

Я прочитал несколько ТАК вопросов, которые касаются этого вопроса, хотя многим из них несколько лет:

Как написать обработчик службы в ServiceStack API, чтобы он стал асинхронным / ожидающим?

На docs.servicestack.net нет документов, в которых вообще упоминается async / await, я просто нахожу несколько сообщений на форуме сообщества. Я думаю , что единственное, что вам нужно сделать, это изменить не асинхронный метод:

public GetBookingResponse Get(GetBooking getBooking)
{
    Booking booking = _objectGetter.GetBooking(getBooking.Id);
    return new GetBookingResponse(booking);
}

к асинхронному методу, это:

public async Task<GetBookingResponse> Get(GetBooking getBooking)
{
    Booking booking = await _objectGetter.GetBookingAsync(getBooking.Id);
    return new GetBookingResponse(booking);
}

и при этом модель асинхронного ожидания / ожидания будет волшебным образом использоваться через стек вызовов?

Mythz? =)

1 Ответ

2 голосов
/ 19 июня 2019

Да, только возвращение Задачи сделает ваши Службы асинхронными и неблокирующими в ServiceStack.

...