rabbitmq 注册IMessageScheduler的发布筛选器

moiiocjp  于 2023-04-20  发布在  RabbitMQ
关注(0)|答案(1)|浏览(137)

我写了一个发布过滤器,当我通过www.example.com发布消息时,它工作正常IPublishEndpoint.now当我通过IMessageScheduler发布消息时,我需要使用此过滤器。
下面的代码在我通过IPublishEndpoint发布非调度消息时被调用。

public class IntegrationEventPublishFilter<T> : IFilter<PublishContext<T>> where T : class
{       
    public IntegrationEventPublishFilter()
    {}

    public Task Send(PublishContext<T> context, IPipe<PublishContext<T>> next)
    {
        // do something
        return next.Send(context);
    }

    public void Probe(ProbeContext context)
    {
    // do something
    }
}

当我通过IMessageScheduler发布预定消息时,如何使用此过滤器?

balp4ylt

balp4ylt1#

您调用的是SchedulePublish还是ScheduleSend?无论哪种方式,您都可能需要为SendContext<T>添加一个过滤器,并将其添加到发布过滤器之外,因为消息调度程序可能使用send来调度消息-这取决于您如何配置消息调度程序。

相关问题