Skip to content

Commit

Permalink
Port civicrm patch for the unit test
Browse files Browse the repository at this point in the history
Ports a patch that was discussed & merged upstream
to address a unit test issue I hit

(Note I don't think any WMF specific review is required here as
it is merged to civicrm master)
civicrm/civicrm-core#27023

Bug: T340040

Change-Id: Ia16661fc3a17de096e6a148c5ff9e0a96a4a85f8
  • Loading branch information
eileenmcnaughton committed Aug 10, 2023
1 parent 8034fed commit 23f1dcf
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions drupal/sites/all/modules/civicrm/CRM/Queue/Runner.php
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,7 @@ public function handleEnd() {
if (!empty($this->onEndUrl)) {
$result['redirect_url'] = $this->onEndUrl;
}
$this->enableBackgroundExecution();
return $result;
}

Expand Down Expand Up @@ -521,4 +522,24 @@ protected function disableBackgroundExecution(): void {
]);
}

/**
* Ensure that background workers will not try to run this queue.
*/
protected function enableBackgroundExecution(): void {
if (CRM_Core_Config::isUpgradeMode()) {
// Versions <=5.50 do not have `status` column.
if (!CRM_Core_DAO::checkTableExists('civicrm_queue') || !CRM_Core_BAO_SchemaHandler::checkIfFieldExists('civicrm_queue', 'status')) {
// The system doesn't have automatic background workers yet. Neither necessary nor possible to toggle `status`.
// See also: https://lab.civicrm.org/dev/core/-/issues/3653
return;
}
}

// If it was disabled for background processing & has not been otherwise altered then
// re-enable it as it might be a persistent queue.
CRM_Core_DAO::executeQuery('UPDATE civicrm_queue SET status = "active" WHERE name = %1 AND status IS NULL', [
1 => [$this->queue->getName(), 'String'],
]);
}

}

0 comments on commit 23f1dcf

Please sign in to comment.