[autotest] Adjust the pause in each tick of the lab scheduler

Add a global config to set a minimum tick time of the scheduler.

BUG=chromium:448940
TEST=Test on the moblab
DEPLOY=scheduler,host_scheduler

Change-Id: Icb9096d4a01be8441a6c4583f213ef0b67b63405
Reviewed-on: https://chromium-review.googlesource.com/262213
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Shuqian Zhao <shuqianz@chromium.org>
Tested-by: Shuqian Zhao <shuqianz@chromium.org>
Trybot-Ready: Shuqian Zhao <shuqianz@chromium.org>
diff --git a/scheduler/monitor_db.py b/scheduler/monitor_db.py
index a29023a..201d2af 100755
--- a/scheduler/monitor_db.py
+++ b/scheduler/monitor_db.py
@@ -168,10 +168,17 @@
         initialize()
         dispatcher = Dispatcher()
         dispatcher.initialize(recover_hosts=options.recover_hosts)
+        minimum_tick_sec = global_config.global_config.get_config_value(
+                scheduler_config.CONFIG_SECTION, 'minimum_tick_sec', type=float)
 
         while not _shutdown and not server._shutdown_scheduler:
+            start = time.time()
             dispatcher.tick()
-            time.sleep(scheduler_config.config.tick_pause_sec)
+            curr_tick_sec = time.time() - start
+            if (minimum_tick_sec > curr_tick_sec):
+                time.sleep(minimum_tick_sec - curr_tick_sec)
+            else:
+                time.sleep(0.0001)
     except Exception:
         email_manager.manager.log_stacktrace(
             "Uncaught exception; terminating monitor_db")