private static void RetryPolityUsingConfigFile(IUnityContainer container, IService service, OutputWriterService writer) { writer.WriteLine("Begin sample: RetryPolityUsingConfigFile"); // Gets the current Retry Manager configuration var retryManager = EnterpriseLibraryContainer.Current.GetInstance<RetryManager>(); // Asks for the default Retry Policy. Keep on mind that it's possible to ask for an specific one. var retryPolicy = retryManager.GetRetryPolicy<FileSystemTransientErrorDetectionStrategy>(); try { // Do some work that may result in a transient fault. retryPolicy.ExecuteAction(service.DoSlowAndImportantTask); } catch (Exception exception) { // All the retries failed. writer.WriteLine("An Exception has been thrown:\n{0}", exception); } writer.WriteLine("End sample: RetryPolityUsingConfigFile"); }
private static void RetryPolityUsingCode(IUnityContainer container, IService service, OutputWriterService writer) { writer.WriteLine("Begin sample: RetryPolityUsingCode"); // Define your retry strategy: retry 5 times, starting 1 second apart // and adding 2 seconds to the interval each retry. var retryStrategy = new Incremental(5, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(2)); // Define your retry policy using the retry strategy and the Windows Azure storage // transient fault detection strategy. var retryPolicy = new RetryPolicy<FileSystemTransientErrorDetectionStrategy>(retryStrategy); try { // Do some work that may result in a transient fault. retryPolicy.ExecuteAction(service.DoSlowAndImportantTask); } catch (Exception exception) { // All the retries failed. writer.WriteLine("An Exception has been thrown:\n{0}", exception); } writer.WriteLine("End sample: RetryPolityUsingCode"); }
public AlwaysFailsService(OutputWriterService writer) : base(writer) { }
public BaseService(OutputWriterService writer) { Writer = writer; }