同时具有异步和同步处理程序的NServiceBus

问题描述 投票:0回答:1

我正在将NServiceBus从较旧的版本升级到版本7。一半的代码已由较早的开发人员升级。该项目正在使用中介模式,一个订阅者项目中有许多处理程序。大多数处理程序都是异步的。

这些处理程序执行数据库更新,而其他一些处理程序执行数据库更新和Web服务调用。

在处理程序中,有许多用于执行数据库操作和Web服务调用的同步方法。

由于处理程序既是异步的又是同步的,如果使用此代码进入生产,我会遇到任何问题吗?

c# .net web-services nservicebus httphandler
1个回答
0
投票

由于NServiceBus IHandleMessages<T>强制处理程序执行此操作,因此处理程序必须返回Task(public Task Handle(T message, IMessageHandlerContext context)。无论您在何处用async标记并使用await关键字,都取决于您的身份。如果您要调用任何异步操作(使用NSreviceBus,第三方异步代码发送或发布),则最好让数据库操作使用异步变体来最大化异步API的好处。

混合异步和非异步是可以的,只是不要忘记等待任何异步操作。

© www.soinside.com 2019 - 2024. All rights reserved.