public static async Task <AdvancedProcessingWorker <T> > CreateAndStartAsync(IQueueConsumer consumer, Action <IEnumerable <T> > batchCallbackAction, ushort batchSize, CancellationToken cancellationToken, ExceptionHandlingStrategy exceptionHandlingStrategy = ExceptionHandlingStrategy.Requeue, int invokeRetryCount = 1, int invokeRetryWaitMilliseconds = 0, ILogger logger = null) { var instance = new AdvancedProcessingWorker <T>(consumer, batchCallbackAction, batchSize, exceptionHandlingStrategy, invokeRetryCount, invokeRetryWaitMilliseconds, logger); await instance.StartAsync(cancellationToken).ConfigureAwait(false); return(instance); }
public static async Task <AdvancedProcessingWorker <T> > CreateAndStartAsync(IQueueClient queueClient, string queueName, Action <T, RabbitMQConsumerContext> callbackAction, CancellationToken cancellationToken, ExceptionHandlingStrategy exceptionHandlingStrategy = ExceptionHandlingStrategy.Requeue, int invokeRetryCount = 1, int invokeRetryWaitMilliseconds = 0, IConsumerCountManager consumerCountManager = null, IMessageRejectionHandler messageRejectionHandler = null, ILogger logger = null, ushort prefetchCount = 1) { var instance = new AdvancedProcessingWorker <T>(queueClient, queueName, callbackAction, exceptionHandlingStrategy, invokeRetryCount, invokeRetryWaitMilliseconds, consumerCountManager, messageRejectionHandler, logger, prefetchCount); await instance.StartAsync(cancellationToken).ConfigureAwait(false); return(instance); }