【发布时间】:2018-11-14 19:32:38
【问题描述】:
我们没有使用 Azure 服务总线的主题(我理解 has additional requirements to support ordering,我的理解是每个队列都应该恢复以 FIFO 方式运行;但是,从今天分析我们的日志来看,我们已经15442 条消息中有 384 条以与入队时不同的顺序出队
为了举例说明,我们有两条消息,d4350a6e68ad4c9fb1fb9ccebd766590 和 0e19fbd29ffd4c4693fff6dd57e4f683;这些分别在 2018-11-14 09:27:31.8870000 和 2018-11-14 09:27:35.5950000 入队(所以 0e... 比 d4 晚了 4 秒...)但是,它们在 2018- 11-14 09:30:12.0320000 和 2018-11-14 09:29:57.4850000 分别(所以 d4... 比 0e... 晚了 15 秒)。在此时间范围内,我们只有一个活跃的主机同时进行入队和出队。
虽然从人类的角度来看,这方面的时间相对接近,但我们已经看到了
据我了解,队列是,好吧,队列,我有点惊讶我看到这种行为 - 我需要做任何额外的魔法来确保它们按照它们入队的顺序出队吗?
作为参考,入队的代码看起来有点像:
var brokeredMessage = new BrokeredMessage(objectToQueue, new DataContractJsonSerializer(typeof(T)));
var queueClient = QueueClient.CreateFromConnectionString(connectionString);
queueClient.RetryPolicy = new RetryExponential(TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(5), 5);
queueClient.Send(brokeredMessage);
我们正在使用服务总线触发器对 Azure Webjob 进行出列
【问题讨论】:
标签: c# azure azureservicebus azure-webjobs