Changed IExceptionStrategy to async

This commit is contained in:
Mark van Renswoude 2021-09-05 10:03:29 +02:00
parent 3981a5c147
commit e83645cdc4
4 changed files with 16 additions and 10 deletions

View File

@ -78,7 +78,8 @@ namespace Tapeti.Connection
}; };
var exceptionContext = new ExceptionStrategyContext(emptyContext, dispatchException); var exceptionContext = new ExceptionStrategyContext(emptyContext, dispatchException);
HandleException(exceptionContext); await HandleException(exceptionContext);
return exceptionContext.ConsumeResult; return exceptionContext.ConsumeResult;
} }
} }
@ -132,7 +133,7 @@ namespace Tapeti.Connection
catch (Exception invokeException) catch (Exception invokeException)
{ {
var exceptionContext = new ExceptionStrategyContext(context, invokeException); var exceptionContext = new ExceptionStrategyContext(context, invokeException);
HandleException(exceptionContext); await HandleException(exceptionContext);
await binding.Cleanup(context, exceptionContext.ConsumeResult); await binding.Cleanup(context, exceptionContext.ConsumeResult);
return exceptionContext.ConsumeResult; return exceptionContext.ConsumeResult;
@ -140,7 +141,7 @@ namespace Tapeti.Connection
} }
private void HandleException(ExceptionStrategyContext exceptionContext) private async Task HandleException(ExceptionStrategyContext exceptionContext)
{ {
if (cancellationToken.IsCancellationRequested && IgnoreExceptionDuringShutdown(exceptionContext.Exception)) if (cancellationToken.IsCancellationRequested && IgnoreExceptionDuringShutdown(exceptionContext.Exception))
{ {
@ -151,7 +152,7 @@ namespace Tapeti.Connection
try try
{ {
exceptionStrategy.HandleException(exceptionContext); await exceptionStrategy.HandleException(exceptionContext);
} }
catch (Exception strategyException) catch (Exception strategyException)
{ {

View File

@ -1,4 +1,5 @@
using Tapeti.Config; using System.Threading.Tasks;
using Tapeti.Config;
namespace Tapeti.Default namespace Tapeti.Default
{ {
@ -9,9 +10,10 @@ namespace Tapeti.Default
public class NackExceptionStrategy : IExceptionStrategy public class NackExceptionStrategy : IExceptionStrategy
{ {
/// <inheritdoc /> /// <inheritdoc />
public void HandleException(IExceptionStrategyContext context) public Task HandleException(IExceptionStrategyContext context)
{ {
context.SetConsumeResult(ConsumeResult.Error); context.SetConsumeResult(ConsumeResult.Error);
return Task.CompletedTask;
} }
} }
} }

View File

@ -1,4 +1,5 @@
using Tapeti.Config; using System.Threading.Tasks;
using Tapeti.Config;
// ReSharper disable UnusedMember.Global // ReSharper disable UnusedMember.Global
@ -20,9 +21,10 @@ namespace Tapeti.Default
public class RequeueExceptionStrategy : IExceptionStrategy public class RequeueExceptionStrategy : IExceptionStrategy
{ {
/// <inheritdoc /> /// <inheritdoc />
public void HandleException(IExceptionStrategyContext context) public Task HandleException(IExceptionStrategyContext context)
{ {
context.SetConsumeResult(ConsumeResult.Requeue); context.SetConsumeResult(ConsumeResult.Requeue);
return Task.CompletedTask;
} }
} }
} }

View File

@ -1,4 +1,5 @@
using Tapeti.Config; using System.Threading.Tasks;
using Tapeti.Config;
namespace Tapeti namespace Tapeti
{ {
@ -12,6 +13,6 @@ namespace Tapeti
/// </summary> /// </summary>
/// <param name="context">The exception strategy context containing the necessary data including the message context and the thrown exception. /// <param name="context">The exception strategy context containing the necessary data including the message context and the thrown exception.
/// Also proivdes methods for the exception strategy to indicate how the message should be handled.</param> /// Also proivdes methods for the exception strategy to indicate how the message should be handled.</param>
void HandleException(IExceptionStrategyContext context); Task HandleException(IExceptionStrategyContext context);
} }
} }