带有子进程的 Azure 服务总线 ReceiveMessages

Azure Service Bus ReceiveMessages with Sub processes

我认为我的问题与 post“Azure 服务总线:如何续订锁?”有关但我已经尝试过 RenewLockAsync。

这是一个问题,我从启用了会话的 ServBus 接收消息,所以我得到会话然后接收消息。好的,给你擦

每条消息还有两个额外的过程要完成。将消息手动转换/收获到其他对象,然后将其发送到 Kafka 主题(流)。请注意它在这种疯狂之上的所有异步。我的团队领导坚持认为可以将两个子进程添加 INTO 接收进程 (ReceiveAsync),最后调用 session.CompleteAsync() AFTER 其他两个进程完成.

不用说,我一直在错误提示“MessageSession 上的会话锁已过期。接受一个新的 MessageSession。”有了那个架构。我什至还没有充实发送到 Kafka 的部分,它只是被嘲笑所以充实后需要更长的时间。

在子进程之后 session.CompleteAsync() 是否甚至有点合理,或者当成功接收到消息时不应该这样做,然后继续进行其他处理?我认为单独的任务会更合适,但他还是没有挖掘这个想法..

感谢所有的见解和意见谢谢!

“MessageSession 上的会话锁已过期。接受新的 MessageSession。”表示两件事之一:

  • 锁打开时间过长,在这种情况下,在锁过期之前调用“RenewLockAsync”会有所帮助。
  • 已通过调用 CompleteAsync、AbandonAsync、DeadLetterAsync 等显式释放消息锁。这表明存在错误,因为锁在释放后无法使用