Improve upate interval after failed updates.

This commit is contained in:
ThorstenB 2011-06-23 17:14:36 +02:00
parent 6f9a14d6c4
commit f582eb5310

View File

@ -93,6 +93,14 @@ const char* rsync_cmd =
const char* svn_options = const char* svn_options =
"checkout -q"; "checkout -q";
namespace UpdateInterval
{
// interval in seconds to allow an update to repeat after a successful update (=daily)
static const double SuccessfulAttempt = 24*60*60;
// interval in seconds to allow another update after a failed attempt (10 minutes)
static const double FailedAttempt = 10*60;
};
typedef map<string,time_t> CompletedTiles; typedef map<string,time_t> CompletedTiles;
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
@ -482,7 +490,7 @@ void SGTerraSync::SvnThread::run()
_completedTiles.find( next._dir ); _completedTiles.find( next._dir );
time_t now = time(0); time_t now = time(0);
if ((ii == _completedTiles.end())|| if ((ii == _completedTiles.end())||
((ii->second + 60*60*24) < now )) (ii->second < now ))
{ {
bool isNewDirectory = false; bool isNewDirectory = false;
@ -491,6 +499,7 @@ void SGTerraSync::SvnThread::run()
{ {
_consecutive_errors++; _consecutive_errors++;
_fail_count++; _fail_count++;
_completedTiles[ next._dir ] = now + UpdateInterval::FailedAttempt;
} }
else else
{ {
@ -510,9 +519,9 @@ void SGTerraSync::SvnThread::run()
_is_dirty = true; _is_dirty = true;
} }
} }
_completedTiles[ next._dir ] = now + UpdateInterval::SuccessfulAttempt;
} }
_busy = false; _busy = false;
_completedTiles[ next._dir ] = now;
} }
if (_consecutive_errors >= 5) if (_consecutive_errors >= 5)