From 1b9027570c0777a3d8bcf2dc38166a54fdd31ab4 Mon Sep 17 00:00:00 2001 From: Marko Kreen Date: Mon, 13 Apr 2009 17:15:51 +0300 Subject: [PATCH] sql/ticker: make timeouts work --- sql/ticker/maint.c | 2 +- sql/ticker/pgqd.ini | 13 +++++++++++++ sql/ticker/retry.c | 3 ++- sql/ticker/ticker.c | 6 +++--- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/sql/ticker/maint.c b/sql/ticker/maint.c index 86af3a2f..a31daec3 100644 --- a/sql/ticker/maint.c +++ b/sql/ticker/maint.c @@ -146,7 +146,7 @@ static void maint_handler(struct PgSocket *s, void *arg, enum PgEvent ev, PGresu if (!statlist_empty(&db->maint_item_list)) { run_vacuum(db); } else { - close_maint(db, 2*60); + close_maint(db, cf.maint_period); } break; default: diff --git a/sql/ticker/pgqd.ini b/sql/ticker/pgqd.ini index 6939f289..31955252 100644 --- a/sql/ticker/pgqd.ini +++ b/sql/ticker/pgqd.ini @@ -1,19 +1,32 @@ [pgqd] +# where to log logfile = my.log +# pidfile pidfile = my.pid +# how often to check for new databases check_period = 60 + +# how often to flush retry queue retry_period = 15 + +# how often to do maintentance maint_period = 120 + +# how often to run ticker ticker_period = 1 +# libpq connect string without dbname= base_connstr = host=127.0.0.1 +# startup db to query other databases initial_database = template1 +# limit ticker to specific databases (does not work) database_list = +# log into syslog syslog = 0 diff --git a/sql/ticker/retry.c b/sql/ticker/retry.c index a056ee6c..a966dfe5 100644 --- a/sql/ticker/retry.c +++ b/sql/ticker/retry.c @@ -22,9 +22,10 @@ static void parse_retry(struct PgDatabase *db, PGresult *res) char *val = PQgetvalue(res, 0, 0); if (strcmp(val, "0") != 0) { run_retry(db); + return; } } - close_retry(db, 20); + close_retry(db, cf.retry_period); } static void retry_handler(struct PgSocket *s, void *arg, enum PgEvent ev, PGresult *res) diff --git a/sql/ticker/ticker.c b/sql/ticker/ticker.c index 7158629c..3c3ba70c 100644 --- a/sql/ticker/ticker.c +++ b/sql/ticker/ticker.c @@ -39,7 +39,7 @@ static void parse_pgq_check(struct PgDatabase *db, PGresult *res) if (!db->has_pgq) { log_info("%s: no pgq", db->name); - close_ticker(db, 60); + close_ticker(db, cf.check_period); } else { run_version_check(db); } @@ -71,7 +71,7 @@ badpgq: PQclear(res); db->has_pgq = false; log_info("%s: bad pgq version, ignoring", db->name); - close_ticker(db, 60); + close_ticker(db, cf.check_period); } static void parse_ticker_result(struct PgDatabase *db, PGresult *res) @@ -81,7 +81,7 @@ static void parse_ticker_result(struct PgDatabase *db, PGresult *res) } PQclear(res); - db_sleep(db->c_ticker, 2); + db_sleep(db->c_ticker, cf.ticker_period); } static void tick_handler(struct PgSocket *s, void *arg, enum PgEvent ev, PGresult *res) -- 2.39.5