公共交通过滤器在消费时收到消息
masstransit filter received message while consume
我有一个问题,是否可以创建过滤器来防止消费消息?
例如消息是:
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
,我需要将消息传递给消费者。在另一种情况下,消息需要被拒绝。
因此您可以使用 ContentFilter 在消息到达消费者之前过滤掉消息:
configurator.Consumer(() => _consumer, x =>
{
x.ConfigureMessage<IProcessingTask>(v => v.UseContentFilter(async context => context.Message.Status == ProcessingTaskStatus.Received));
});
您必须为每种消息类型设置一个过滤器,它们是单独配置的。
我有一个问题,是否可以创建过滤器来防止消费消息? 例如消息是:
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
,我需要将消息传递给消费者。在另一种情况下,消息需要被拒绝。
因此您可以使用 ContentFilter 在消息到达消费者之前过滤掉消息:
configurator.Consumer(() => _consumer, x =>
{
x.ConfigureMessage<IProcessingTask>(v => v.UseContentFilter(async context => context.Message.Status == ProcessingTaskStatus.Received));
});
您必须为每种消息类型设置一个过滤器,它们是单独配置的。