我有一个消失的消息。我有以下服务总线实现:
BrokeredMessage msg = new BrokeredMessage(messageContent);
msg.TimeToLive = messageLiveTime;
queueClient.SendAsync(message);
// Later
var messageOptions = new OnMessageOptions() {MaxConcurrentCalls = maxConcurrentCallsToCallBack};
client.OnMessage((incomingMessage) =>
{
T content = CommonServiceBus.ExtractMessageContent<T>(incomingMessage);
if (content != null)
{
callBack(content);
}
}, messageOptions);
我有3个MaxConcurrentCalls,消息TTL是12个小时;但是,我发送了大约10条消息(每条消息大约需要30秒才能完成),前9条消息被处理,但是从未收到第10条消息。
我尝试的事情:
如果我将MaxConcurrentCalls降低到1则会变得更糟。有些东西消耗了消息(或消息即将到期),但我不知道在哪里或如何。
答案 0 :(得分:1)
我们遇到了类似的问题,事实证明,如果它比容器TTL短,则仅使用消息TTL。确保您没有设置容器TTL或将其设置为大于您将使用的最大消息TTL的值。