NServiceBus с обработчиками asyn c и syn c - PullRequest
0 голосов
/ 27 февраля 2020

Я обновляю NServiceBus со старой версии до версии 7. Половина кода уже была обновлена ​​более ранним разработчиком. В проекте используется шаблон-посредник, и в одном проекте подписчика много обработчиков. Большинство обработчиков являются asyn c.

Эти обработчики выполняют обновления базы данных, а некоторые другие обработчики выполняют обновления базы данных и вызовы веб-служб.

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

Поскольку обработчики являются асинхронными c и syn c, возникнут ли у меня какие-либо проблемы, если я перейду в производство с этим кодом?

1 Ответ

0 голосов
/ 27 февраля 2020

Обработчики должны будут возвращать Задачу из-за того, что NServiceBus IHandleMessages<T> обязывает обработчики делать это (public Task Handle(T message, IMessageHandlerContext context). Где бы вы ни пометили его как async и использовали ключевое слово await, будет зависеть от того, что вы Если вы собираетесь вызывать что-либо, что является асинхронной операцией (отправка или публикация с использованием NSreviceBus, стороннего асинхронного кода), лучше максимизировать преимущества асинхронных API, если для операций с базой данных используются асинхронные c варианты.

Можно смешивать асинхронные и не асинхронные, просто не забудьте дождаться любой асинхронной c операции.

...