From 5873695bffc6429cd2a92d345a6ff513babc062e Mon Sep 17 00:00:00 2001 From: Steve Kemp Date: Tue, 14 May 2013 13:39:56 +0100 Subject: Allow retry-behaviour to be tweaked. We can now sleep between retesting, and we configure the number of repeats via the configuration file. --- lib/custodian/settings.rb | 20 ++++++++++++++++++++ lib/custodian/worker.rb | 20 +++++++++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) (limited to 'lib/custodian') diff --git a/lib/custodian/settings.rb b/lib/custodian/settings.rb index b37e9e4..34a54a6 100644 --- a/lib/custodian/settings.rb +++ b/lib/custodian/settings.rb @@ -90,6 +90,26 @@ module Custodian + # + # The number of times to re-execute a test before + # considering it is failed. + # + def retries + _load() unless( _loaded? ) + + @settings['retries' ] || 5 + end + + + # + # Should we sleep before repeating tests? + # + def retry_delay + _load() unless( _loaded? ) + + @settings['retry_delay'] || 0 + end + # # The beanstalkd server address diff --git a/lib/custodian/worker.rb b/lib/custodian/worker.rb index 0255134..432b3d4 100644 --- a/lib/custodian/worker.rb +++ b/lib/custodian/worker.rb @@ -54,6 +54,11 @@ module Custodian # attr_reader :retry_count + # + # Should we sleep between repeated tests? + # + attr_reader :retry_delay + # # The log-file object @@ -87,7 +92,10 @@ module Custodian @settings = settings # How many times to repeat a failing test - @retry_count=5 + @retry_count=@settings.retries() + + # Should we sleep between repeated tests? + @retry_delay = @settings.retry_delay() end @@ -183,6 +191,16 @@ module Custodian success = true end count += 1 + + # + # Some of our routers don't like being hammered. + # + # We delay before re-testing. + # + if ( @retry_delay > 0 ) + puts "Sleeping for #{@retry_delay} seconds to allow cooldown" + sleep( @retry_delay ) + end end # -- cgit v1.2.1