diff --git a/.gitignore b/.gitignore index f768ad1d..03e1bc05 100644 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,8 @@ nosetests.xml .project .pydevproject +.idea/ + venv pypy .DS_Store diff --git a/mrq/config.py b/mrq/config.py index fd693b03..aed2a767 100644 --- a/mrq/config.py +++ b/mrq/config.py @@ -296,6 +296,14 @@ def add_parser_args(parser, config_type): type=str, help='Overwrite the local IP, to be displayed in the dashboard.') + parser.add_argument( + '--max_latency', + default=1., + type=float, + action='store', + help='Max seconds while worker may sleep waiting for a new job. ' + 'Can be < 1.') + def get_config( sources=( diff --git a/mrq/worker.py b/mrq/worker.py index 18ce451e..732ed975 100644 --- a/mrq/worker.py +++ b/mrq/worker.py @@ -375,11 +375,6 @@ def work_loop(self): self.status = "full" gevent.sleep(0.01) - quiet = not (wait_count % 20 == 0 or wait_count > 1000) - - if not quiet: - self.log.info('Fetching %s jobs from %s' % (free_pool_slots, self.queues)) - jobs = [] for queue_name in self.queues: @@ -408,7 +403,7 @@ def work_loop(self): if len(jobs) < free_pool_slots: self.status = "wait" wait_count += 1 - gevent.sleep(min(1, 0.001 * wait_count)) + gevent.sleep(min(self.config["max_latency"], 0.001 * wait_count)) except StopRequested: pass