From: Richard Kettlewell Date: Sun, 1 Jun 2008 14:01:40 +0000 (+0100) Subject: Limit rescan/recheck messages to one every 10 seconds (and at most one X-Git-Tag: 4.0~45 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/commitdiff_plain/807d26441e9423b2532e807eafba82c1e6dac282?ds=sidebyside Limit rescan/recheck messages to one every 10 seconds (and at most one per hundred tracks). This cuts down a lot of pointless log chatter when a well-established server restarts. --- diff --git a/server/rescan.c b/server/rescan.c index 04ffba4..1c2c973 100644 --- a/server/rescan.c +++ b/server/rescan.c @@ -20,6 +20,7 @@ #include "disorder-server.h" +static time_t last_report; static DB_TXN *global_tid; static const struct option options[] = { @@ -131,8 +132,10 @@ static void rescan_collection(const struct collection *c) { if(n < config->player.n) { nnew += !!trackdb_notice(track, path); ++ntracks; - if(ntracks % 1000 == 0) + if(ntracks % 100 == 0 && time(0) > last_report + 10) { info("rescanning %s, %ld tracks so far", c->root, ntracks); + time(&last_report); + } } } /* tidy up */ @@ -295,11 +298,12 @@ static void recheck_collection(const struct collection *c) { return; recheck_track(&cs, t); ++nrc; - if(nrc % 100 == 0) { + if(nrc % 100 == 0 && time(0) > last_report + 10) { if(c) info("rechecking %s, %ld tracks so far", c->root, nrc); else info("rechecking all tracks, %ld tracks so far", nrc); + time(&last_report); } } if(c)