public async static Task <AdvancedAsyncMessageProcessingWorker <T> > CreateAndStartAsync(IQueueConsumer consumer, Func <T, CancellationToken, Task> callbackFunc, TimeSpan processingTimeout, CancellationToken cancellationToken, ExceptionHandlingStrategy exceptionHandlingStrategy = ExceptionHandlingStrategy.Requeue, int invokeRetryCount = 1, int invokeRetryWaitMilliseconds = 0) { var instance = new AdvancedAsyncMessageProcessingWorker <T>(consumer, callbackFunc, processingTimeout, exceptionHandlingStrategy, invokeRetryCount, invokeRetryWaitMilliseconds); await instance.StartAsync(cancellationToken).ConfigureAwait(false); return(instance); }
public async static Task <AdvancedAsyncMessageProcessingWorker <T> > CreateAndStartAsync(IQueueClient queueClient, string queueName, Func <T, CancellationToken, Task> callbackFunc, TimeSpan processingTimeout, CancellationToken cancellationToken, ExceptionHandlingStrategy exceptionHandlingStrategy = ExceptionHandlingStrategy.Requeue, int invokeRetryCount = 1, int invokeRetryWaitMilliseconds = 0, ConsumerCountManager consumerCountManager = null, IMessageRejectionHandler messageRejectionHandler = null) { var instance = new AdvancedAsyncMessageProcessingWorker <T>(queueClient, queueName, callbackFunc, processingTimeout, exceptionHandlingStrategy, invokeRetryCount, invokeRetryWaitMilliseconds, consumerCountManager, messageRejectionHandler); await instance.StartAsync(cancellationToken).ConfigureAwait(false); return(instance); }