Rebus是否支持批量发送

时间:2017-01-24 12:42:22

标签: rebus

是否可以批量Rebus消息(使用Azure Servicebus)? 原因是我们将发送大量消息以保存日志事件并想要批量处理。

1 个答案:

答案 0 :(得分:0)

虽然旧版本的Rebus确实有一个批处理API,用于在单个传输消息中包含多个逻辑消息,但该功能在很多地方以增加的复杂性为代价,带来的优势很小。

如果您想发送批量邮件,我建议您只编写自己的邮件批处理邮件,例如

public class BatchOfLogEvents
{
    public BatchOfLogEvents(IEnumerable<LogEvent> logEvents)
    {
        LogEvents = logEvents.ToArray();
    }

    public IReadOnlyCollection<LogEvent> LogEvents { get; }
}

然后你发送它并在另一端为它创建一个处理程序。

有关Azure Service Bus的更新:请记住Azure Service Bus有256 kB maximum message size (or 1MB if you're on Premium)

另外:如果您还没有这样做,您可以通过启用GZip压缩消息来获益

.Options(o => o.EnableCompression())
在您的Rebus配置中