Ale*_* Ku 1 c# masstransit rabbitmq
我有一个问题,是否可以创建过滤器以防止消耗消息?例如,消息是:
public class ProcessingTask : IProcessingTask
{
public int Id { set; get; }
public string ExternalId { set; get; }
public ProcessingTaskStatus Status { set; get; }
public string Details { set; get; }
}
Run Code Online (Sandbox Code Playgroud)
所以我需要传递信息给消费者,如果消息Status是ProcessingTaskStatus.Received例如。换句话说,该消息需要被拒绝。
因此,您可以使用ContentFilter在邮件到达使用者之前过滤掉它们:
configurator.Consumer(() => _consumer, x =>
{
x.ConfigureMessage<IProcessingTask>(v => v.UseContentFilter(async context => context.Message.Status == ProcessingTaskStatus.Received));
});
Run Code Online (Sandbox Code Playgroud)
您必须为每种消息类型分别设置一个过滤器。