[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")