Rebus for Azure Storage queue - 调整每个 GetMessage() 调用之间的频率

Rebus for Azure Storage queue - adjusting frequency between each GetMessage() call

大家好(很可能是@mookid8000),

我正在使用 Rebus C# 库和 Azure 存储队列。 一切正常,只有一个日志记录问题。

Rebus 每秒对队列进行多次 GetMessage 调用。 这是非常有问题的,因为如果将“队列”操作记录到 Log Analytics,它每天会生成 GB 的数据,这会花费很多钱。

有没有办法告诉 rebus 每 10 秒或每分钟检查一次队列,如果最后响应 return 没有新消息?我的应用程序不需要快速消息处理,因此每次调用队列之间的刷新周期越慢越好。

也许可以在这里配置?

services.AddRebus((configure, sp) => configure
                    .Transport(t =>
                    {
                        CloudStorageAccount storageAccount = CloudStorageAccount
                          .Parse(Configuration.GetValue<string>("StorageQueue:ConnectionString"));
                        t.UseAzureStorageQueues(storageAccount, "queue");
                    })
                    .Routing(r =>
                    {
                        var routing = r.TypeBased();                        
                        routing.Map<TrackedObject>("queue");
                    })
                );

我正在检查是否可以找到关于此的一些文档,但找不到任何内容:(

感谢您的帮助。

您正在寻找 how to configure Rebus' back-off times

有了它,你可以做这样的事情

services.AddRebus(
    configure => configure.
        .(...)
        .Options(o => {
            o.SetBackoffTimes(
                TimeSpan.FromSeconds(1),
                TimeSpan.FromSeconds(2),
                TimeSpan.FromSeconds(10)
            );
        })
);

并让它在 运行 空闲 3 秒后在轮询消息之间等待 10 秒。