diff --git a/src/slurmctld/controller.c b/src/slurmctld/controller.c
index c3ca0f029a4d76d8c0433cde2e0a71f7f193e2f4..3ea3852ce7cd195de46e29a7e9fb74576f3af8f0 100644
--- a/src/slurmctld/controller.c
+++ b/src/slurmctld/controller.c
@@ -1557,7 +1557,8 @@ static void *_slurmctld_background(void *no_data)
 			job_limit = INFINITE;
 			job_sched_cnt = 0;
 			slurm_mutex_unlock(&sched_cnt_mutex);
-		} else if (job_sched_cnt) {
+		} else if (job_sched_cnt &&
+			   (difftime(now, last_sched_time) >= 3)) {
 			slurm_mutex_lock(&sched_cnt_mutex);
 			job_limit = 0;	/* Default depth */
 			job_sched_cnt = 0;