]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Calculate a timeout to use based on queue size
authorZack Cerza <zack@cerza.org>
Tue, 29 Apr 2014 16:30:50 +0000 (11:30 -0500)
committerZack Cerza <zack@cerza.org>
Wed, 30 Apr 2014 19:30:43 +0000 (14:30 -0500)
Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
teuthology/beanstalk.py

index ebbe9dbce45319b35b91c89d9741cbaa778c34c2..34e831cc68b318f5757c01b5ac36d49ba2edd219 100644 (file)
@@ -35,11 +35,13 @@ def walk_jobs(connection, tube_name, callback, pattern=None):
         log.info('No jobs in Beanstalk Queue')
         return
 
+    # Try to figure out a sane timeout based on how many jobs are in the queue
+    timeout = job_count / 2000.0 * 60
     matching_jobs = OrderedDict()
     for i in range(1, job_count + 1):
         sys.stderr.write("{i}/{count}\r".format(i=i, count=job_count))
         sys.stderr.flush()
-        job = connection.reserve(timeout=30)
+        job = connection.reserve(timeout=timeout)
         if job is None or job.body is None:
             continue
         job_config = yaml.safe_load(job.body)