我写了一个发布过滤器,当我通过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发布预定消息时,如何使用此过滤器?
1条答案
按热度按时间balp4ylt1#
您调用的是
SchedulePublish
还是ScheduleSend
?无论哪种方式,您都可能需要为SendContext<T>
添加一个过滤器,并将其添加到发布过滤器之外,因为消息调度程序可能使用send来调度消息-这取决于您如何配置消息调度程序。