我想知道是否可以将代理消息发送到消息已经处于延迟状态的队列/主题?
我问这个是因为我目前有一个执行以下操作的过程......
- 该过程开始并将代理消息发送到队列(这会触发一个函数,该函数将消息主体作为一个实体记录在表存储中,并具有“处理”状态)。
- 在此过程中完成了额外的工作
- 如果我们在没有任何问题的情况下完成该过程,则会将另一条代理消息与完成消息一起发送到队列(这会触发将表存储中的实体更新为“完成”状态的相同功能)。
虽然这种方法主要是有效的,但它感觉笨重和脆弱。我真的希望能够向队列发送消息,然后在最后一步使消息在队列中可见,以便函数可以使用它(持久函数)。
我考虑过设置ScheduledEnqueueTimeUtc
,但我不能保证该过程何时完成(我在这里考虑最坏的情况)所以我不确定设置它多长时间。
我还查看了Defer
a 的选项,BrokeredMessage
但似乎只能从接收器设置,并且最初不能处于延迟状态。
我正在尝试对服务总线代理消息做些什么?我可以将预定的入队时间设置得这么长(例如 2 小时),如果达到那个时间,它会自动过期并移至死信队列吗?我是否应该将初始消息发送到死信队列,然后在该过程完成后检索它并重新提交?
有没有人有任何实现这样的过程的经验......发送一个开始消息并且只有在收到完成通知后才处理该消息?我需要它尽可能稳健,因为我在这个过程中处理金融交易。
希望我的解释是有道理的。