diff --git a/doc/worker/config.rst b/doc/worker/config.rst index 57e2a99e..4b927f4d 100644 --- a/doc/worker/config.rst +++ b/doc/worker/config.rst @@ -59,6 +59,11 @@ Command Line Options The number of seconds to sleep between statistics polling of the load balancer driver. Default is 300 seconds. + .. option:: --gearman-poll + + The number of seconds gearman will poll before re-shuffling its + connections. Default is 60 seconds. + .. option:: --syslog Send log events to syslog. diff --git a/etc/sample_libra.cfg b/etc/sample_libra.cfg index 38c9077e..9b25fa46 100644 --- a/etc/sample_libra.cfg +++ b/etc/sample_libra.cfg @@ -29,6 +29,7 @@ group = libra driver = haproxy reconnect_sleep = 60 stats_poll = 300 +gearman_poll = 60 server = 10.0.0.1:8080 10.0.0.2:8080 pid = /var/run/libra/libra_worker.pid logfile = /var/log/libra/libra_worker.log diff --git a/libra/worker/main.py b/libra/worker/main.py index dc9848e9..962f7353 100644 --- a/libra/worker/main.py +++ b/libra/worker/main.py @@ -101,6 +101,11 @@ def main(): '--stats-poll', dest='stats_poll', type=int, metavar='TIME', default=300, help='statistics polling interval in seconds' ) + options.parser.add_argument( + '--gearman-poll', + dest='gearman_poll', type=int, metavar='TIME', + default=60, help='Gearman worker polling timeout' + ) args = options.run() if not args.server: diff --git a/libra/worker/worker.py b/libra/worker/worker.py index ccf8283d..c95b1481 100644 --- a/libra/worker/worker.py +++ b/libra/worker/worker.py @@ -85,7 +85,7 @@ def config_thread(logger, driver, args): while (retry): try: - worker.work() + worker.work(args.gearman_poll) except KeyboardInterrupt: retry = False except gearman.errors.ServerUnavailable: