From f774b4bbcfe92fb062ab2c0122f0e72db151139e Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Mon, 24 May 2021 12:20:40 +0300 Subject: [PATCH] queue optimization --- application/Espo/Core/Utils/Cron/Job.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/application/Espo/Core/Utils/Cron/Job.php b/application/Espo/Core/Utils/Cron/Job.php index ee5b550d25..2ea8184d6f 100644 --- a/application/Espo/Core/Utils/Cron/Job.php +++ b/application/Espo/Core/Utils/Cron/Job.php @@ -165,13 +165,22 @@ class Job public function hasScheduledJobOnMinute(string $scheduledJobId, string $time) : bool { $dateObj = new DateTime($time); - $timeWithoutSeconds = $dateObj->format('Y-m-d H:i:'); + + $fromString = $dateObj->format('Y-m-d H:i:00'); + $toString = $dateObj->format('Y-m-d H:i:59'); $job = $this->getEntityManager()->getRepository('Job') ->select(['id']) ->where([ 'scheduledJobId' => $scheduledJobId, - 'executeTime*' => $timeWithoutSeconds . '%', + 'status' => [ // This forces usage of an appropriate index. + CronManager::PENDING, + CronManager::READY, + CronManager::RUNNING, + CronManager::SUCCESS, + ], + 'executeTime>=' => $fromString, + 'executeTime<=' => $toString, ]) ->findOne();