示例#1
0
 /// <summary>
 ///     Ends the pipeline by executing the provided endpoint. Defaults to <see cref="BatchHandlerPipelineEndpoint{T}" />
 /// </summary>
 public static void Run <T>(this IBatchPipelineBuilder <T> builder, Func <IReadOnlyCollection <Message <T> >, Task> action)
 {
     builder.Run(() =>
     {
         return((messages, cancellationToken, messageContext) => action(messages));
     });
 }
示例#2
0
 /// <summary>
 ///     Adds a middleware step into the pipeline
 /// </summary>
 public static IBatchPipelineBuilder <T> Use <T>(this IBatchPipelineBuilder <T> builder, Func <IReadOnlyCollection <Message <T> >, Func <Task>, Task> middleware)
 {
     return(builder.Use(next =>
     {
         return (messages, cancellationToken, messageContext) =>
         {
             return middleware(messages, () => next(messages, cancellationToken, messageContext));
         };
     }));
 }
示例#3
0
 public BatchPipelineEndpoint(IServiceScopeFactory serviceScopeFactory, IBatchPipelineBuilder <T> batchPipelineBuilder, IOptions <PipelineOptions <T> > options)
     : base(options.Value.BatchSize, options.Value.BatchTimeout)
 {
     _serviceScopeFactory  = serviceScopeFactory;
     _batchPipelineBuilder = batchPipelineBuilder;
 }
示例#4
0
 /// <summary>
 ///     Adds the MediatR pipeline endpoint to the end of the pipeline
 /// </summary>
 public static void RunMediatR <T>(this IBatchPipelineBuilder <T> pipelineBuilder)
 {
     pipelineBuilder.Services.TryAddScoped <MediatRBatchPipelineEndpoint <T> >();
     pipelineBuilder.Run <MediatRBatchPipelineEndpoint <T> >();
 }