function run() { $queue = CRM_Core_Extensions_Upgrades::createQueue(); $runner = new CRM_Queue_Runner(array('title' => ts('Database Upgrades'), 'queue' => $queue, 'errorMode' => CRM_Queue_Runner::ERROR_ABORT, 'onEnd' => array('CRM_Admin_Page_ExtensionsUpgrade', 'onEnd'), 'onEndUrl' => CRM_Utils_System::url(self::END_URL, self::END_PARAMS))); CRM_Core_Error::debug_log_message('CRM_Admin_Page_ExtensionsUpgrade: Start upgrades'); $runner->runAllViaWeb(); // does not return }
function run() { //retrieve the queue $cid = CRM_Utils_Request::retrieve('cid', 'Positive', $this, TRUE, 0); $queue = CRM_Chapters_UpdateQueue::singleton()->getQueue(); $runner = new CRM_Queue_Runner(array('title' => ts('Update contacts'), 'queue' => $queue, 'errorMode' => CRM_Queue_Runner::ERROR_ABORT, 'onEnd' => array('CRM_Chapters_Page_UpdateAllContacts', 'onEnd'), 'onEndUrl' => CRM_Utils_System::url('civicrm/contact/view', 'reset=1&selectedChild=tab_automatch_chapters&cid=' . $cid, true, null, false))); $runner->runAllViaWeb(); // does not return }
function run() { $queue = CRM_Queue_Service::singleton()->create(array('type' => 'Sql', 'name' => self::QUEUE_NAME, 'reset' => TRUE)); for ($i = 0; $i < 5; $i++) { $queue->createItem(new CRM_Queue_Task(array('CRM_Demoqueue_Page_DemoQueue', 'doMyWork'), array($i, "Task {$i} takes {$i} second(s)"), "Task {$i}")); if ($i == 2) { $queue->createItem(new CRM_Queue_Task(array('CRM_Demoqueue_Page_DemoQueue', 'addMoreWork'), array(), "Add More Work")); } } $runner = new CRM_Queue_Runner(array('title' => ts('Demo Queue Runner'), 'queue' => $queue, 'onEnd' => array('CRM_Demoqueue_Page_DemoQueue', 'onEnd'), 'onEndUrl' => CRM_Utils_System::url('civicrm/demo-queue/done'))); $runner->runAllViaWeb(); // does not return }
/** * Begin the upgrade by building a queue of tasks and redirecting to the queue-runner */ public function runBegin() { $upgrade = new CRM_Upgrade_Form(); list($currentVer, $latestVer) = $upgrade->getUpgradeVersions(); if ($error = $upgrade->checkUpgradeableVersion($currentVer, $latestVer)) { CRM_Core_Error::fatal($error); } $config = CRM_Core_Config::singleton(); $postUpgradeMessage = '<span class="bold">' . ts('Congratulations! Your upgrade was successful!') . '</span>'; // lets drop all the triggers here CRM_Core_DAO::dropTriggers(); $this->set('isUpgradePending', TRUE); // Persistent message storage across upgrade steps. TODO: Use structured message store // Note: In clustered deployments, this file must be accessible by all web-workers. $this->set('postUpgradeMessageFile', CRM_Utils_File::tempnam('civicrm-post-upgrade')); file_put_contents($this->get('postUpgradeMessageFile'), $postUpgradeMessage); $queueRunner = new CRM_Queue_Runner(array('title' => ts('CiviCRM Upgrade Tasks'), 'queue' => CRM_Upgrade_Form::buildQueue($currentVer, $latestVer, $this->get('postUpgradeMessageFile')), 'isMinimal' => TRUE, 'pathPrefix' => 'civicrm/upgrade/queue', 'onEndUrl' => CRM_Utils_System::url('civicrm/upgrade', 'action=finish', FALSE, NULL, FALSE), 'buttons' => array('retry' => $config->debug, 'skip' => $config->debug))); $queueRunner->runAllViaWeb(); CRM_Core_Error::fatal(ts('Upgrade failed to redirect')); }
function postProcess() { $current_status_ids = array(); $dao = CRM_Core_DAO::executeQuery("SELECT id from civicrm_membership_status where is_current_member = 1"); while ($dao->fetch()) { $current_status_ids[] = $dao->id; } $formValues = $this->exportValues(); if (!isset($formValues['member_status_id'])) { $formValues['member_status_id'] = array(); } $birth_date_from = CRM_Utils_Date::processDate($formValues['birth_date_from']); $birth_date_to = CRM_Utils_Date::processDate($formValues['birth_date_to']); $selector = new CRM_Rood_UpgradeSelector(); $original_where = $selector->getWhere(); $selector->setData($formValues['rood_mtype'], array_keys($formValues['member_status_id']), $birth_date_from, $birth_date_to); $selector->store(); $where = $selector->getWhere(); $count = CRM_Core_DAO::singleValueQuery("SELECT COUNT(*)\n FROM civicrm_membership\n INNER JOIN civicrm_contact ON civicrm_membership.contact_id = civicrm_contact.id\n LEFT JOIN civicrm_membership sp_membership ON civicrm_contact.id = sp_membership.contact_id AND sp_membership.membership_type_id = '{$formValues['sp_mtype']}' AND sp_membership.status_id IN (" . implode(', ', $current_status_ids) . ")\n " . $where . " AND sp_membership.id is null"); $this->assign('found', $count); if ($where == $original_where && isset($_POST['continue']) && !empty($_POST['continue'])) { $queue = CRM_Queue_Service::singleton()->create(array('type' => 'Sql', 'name' => 'nl.sp.rood.upgrade', 'reset' => TRUE)); $dao = CRM_Core_DAO::executeQuery("SELECT civicrm_membership.id\n FROM civicrm_membership\n INNER JOIN civicrm_contact ON civicrm_membership.contact_id = civicrm_contact.id\n LEFT JOIN civicrm_membership sp_membership ON civicrm_contact.id = sp_membership.contact_id AND sp_membership.membership_type_id = '{$formValues['sp_mtype']}' AND sp_membership.status_id IN (" . implode(', ', $current_status_ids) . ")\n " . $where . " AND sp_membership.id is null\n "); $i = 1; while ($dao->fetch()) { $title = ts('Upgrade Rood lidmaatschappen %1 van %2', array(1 => $i, 2 => $count)); //create a task without parameters $task = new CRM_Queue_Task(array('CRM_Rood_MembershipUpgrade', 'UpgradeFromQueue'), array($dao->id, $formValues), $title); //now add this task to the queue $queue->createItem($task); $i++; } $runner = new CRM_Queue_Runner(array('title' => ts('Upgrade rood lidmaatschappen'), 'queue' => $queue, 'errorMode' => CRM_Queue_Runner::ERROR_ABORT, 'onEnd' => array('CRM_Rood_Form_UpgradeRoodMembership', 'onEnd'), 'onEndUrl' => CRM_Utils_System::url('civicrm/member/upgrade_rood', 'reset=1'))); $runner->runAllViaWeb(); // does not return } }
/** * Begin the upgrade by building a queue of tasks and redirecting to the queue-runner */ function runBegin() { $upgrade = new CRM_Upgrade_Form(); list($currentVer, $latestVer) = $upgrade->getUpgradeVersions(); if ($error = $upgrade->checkUpgradeableVersion($currentVer, $latestVer)) { CRM_Core_Error::fatal($error); } $config = CRM_Core_Config::singleton(); // This could be removed in later rev if ($currentVer == '2.1.6') { // also cleanup the templates_c directory $config->cleanupCaches(); } // end of hack $postUpgradeMessage = ts('CiviCRM upgrade was successful.'); // Persistent message storage across upgrade steps. TODO: Use structured message store // Note: In clustered deployments, this file must be accessible by all web-workers. $this->set('postUpgradeMessageFile', CRM_Utils_File::tempnam('civicrm-post-upgrade')); file_put_contents($this->get('postUpgradeMessageFile'), $postUpgradeMessage); $queueRunner = new CRM_Queue_Runner(array('title' => ts('CiviCRM Upgrade Tasks'), 'queue' => CRM_Upgrade_Form::buildQueue($currentVer, $latestVer, $this->get('postUpgradeMessageFile')), 'isMinimal' => TRUE, 'pathPrefix' => 'civicrm/upgrade/queue', 'onEndUrl' => CRM_Utils_System::url('civicrm/upgrade', 'action=finish', FALSE, NULL, FALSE), 'buttons' => array('retry' => $config->debug, 'skip' => $config->debug))); $queueRunner->runAllViaWeb(); CRM_Core_Error::fatal(ts('Upgrade failed to redirect')); }