我有一个问题,是否有可能创建过滤器以防止消息? 例如,消息是:
public class ProcessingTask : IProcessingTask
{
public int Id { set; get; }
public string ExternalId { set; get; }
public ProcessingTaskStatus Status { set; get; }
public string Details { set; get; }
}
因此,如果消息Status
为ProcessingTaskStatus.Received
,我需要将消息传递给使用者。另一方面,消息需要被拒绝。
答案 0 :(得分:4)
因此,您可以使用ContentFilter在消息到达消费者之前过滤掉消息:
configurator.Consumer(() => _consumer, x =>
{
x.ConfigureMessage<IProcessingTask>(v => v.UseContentFilter(async context => context.Message.Status == ProcessingTaskStatus.Received));
});
您必须为每种消息类型设置过滤器,它们是单独配置的。