C#最好的方法来处理exeception重试n次使用polly将消息发送到队列

时间:2016-09-05 09:45:37

标签: c#-4.0 async-await rabbitmq masstransit polly

我使用MassTransit和RabbitMQ将消息发布到队列。 任何人都可以告诉我,如果没有可用的队列,处理异常的最佳方法是什么,并尝试使用Polly n次?

这是我将消息发布到队列的代码:

private async Task PublishToQueue(ChangeDetected changeDetected)
{
    _logProvider.Info("Publish to Queue started");

    try
    {
       await _busControl.Publish(changeDetected);

        _logProvider.Info($"ChangeDetected message published to RabbitMq. Message");
    }
    catch (Exception ex)
    {
        _logProvider.Error("Error publishing message to queue: ", ex);

        throw;
    }
}

我可以在quartz.net作业中使用以下代码来实现polly重试吗?

                //Publish message to queue
                Policy
                    .Handle<Exception>()
                    .RetryAsync(_configReader.RetryLimit, (exception, count) =>
                    {
                        //Do something for each retry
                    })
                    .ExecuteAsync(async () =>
                    {
                        await PublishToQueue(message);
                    });

由于

0 个答案:

没有答案