From 206c3680973b7f2b137aa14641e659b5b6daadbf Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Mon, 6 Jun 2022 19:36:12 -0700 Subject: [PATCH] CRM_Queue_Runner - runAllViaWeb should run exclusively via web This is a preventative measure. --- CRM/Queue/Runner.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CRM/Queue/Runner.php b/CRM/Queue/Runner.php index 6b3213f256..fc30abc762 100644 --- a/CRM/Queue/Runner.php +++ b/CRM/Queue/Runner.php @@ -146,8 +146,11 @@ class CRM_Queue_Runner { public function runAllViaWeb() { $_SESSION['queueRunners'][$this->qrid] = serialize($this); $url = CRM_Utils_System::url($this->pathPrefix . '/runner', 'reset=1&qrid=' . urlencode($this->qrid)); + // If this was persistent/registered queue, ensure that no one else tries to execute it. + CRM_Core_DAO::executeQuery('UPDATE civicrm_queue SET status = NULL WHERE name = %1', [ + 1 => [$this->queue->getName(), 'String'], + ]); CRM_Utils_System::redirect($url); - // TODO: evaluate items incrementally via AJAX polling, cleanup session } /** -- 2.25.1