/** * Ends this task peacefully * @param string $mode Use 'fast' to always skip job running */ public function restInPeace($mode = 'fast') { // Assure deferred updates are not in the main transaction wfGetLBFactory()->commitMasterChanges(__METHOD__); // Ignore things like master queries/connections on GET requests // as long as they are in deferred updates (which catch errors). Profiler::instance()->getTransactionProfiler()->resetExpectations(); // Do any deferred jobs DeferredUpdates::doUpdates('enqueue'); // Make sure any lazy jobs are pushed JobQueueGroup::pushLazyJobs(); // Now that everything specific to this request is done, // try to occasionally run jobs (if enabled) from the queues if ($mode === 'normal') { $this->triggerJobs(); } // Log profiling data, e.g. in the database or UDP wfLogProfilingData(); // Commit and close up! $factory = wfGetLBFactory(); $factory->commitMasterChanges(__METHOD__); $factory->shutdown(LBFactory::SHUTDOWN_NO_CHRONPROT); wfDebug("Request ended normally\n"); }
/** * Ends this task peacefully * @param string $mode Use 'fast' to always skip job running */ public function restInPeace($mode = 'fast') { $lbFactory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory(); // Assure deferred updates are not in the main transaction $lbFactory->commitMasterChanges(__METHOD__); // Loosen DB query expectations since the HTTP client is unblocked $trxProfiler = Profiler::instance()->getTransactionProfiler(); $trxProfiler->resetExpectations(); $trxProfiler->setExpectations($this->config->get('TrxProfilerLimits')['PostSend'], __METHOD__); // Do any deferred jobs DeferredUpdates::doUpdates('enqueue'); DeferredUpdates::setImmediateMode(true); // Make sure any lazy jobs are pushed JobQueueGroup::pushLazyJobs(); // Now that everything specific to this request is done, // try to occasionally run jobs (if enabled) from the queues if ($mode === 'normal') { $this->triggerJobs(); } // Log profiling data, e.g. in the database or UDP wfLogProfilingData(); // Commit and close up! $lbFactory->commitMasterChanges(__METHOD__); $lbFactory->shutdown(LBFactory::SHUTDOWN_NO_CHRONPROT); wfDebug("Request ended normally\n"); }
/** * Ends this task peacefully */ public function restInPeace() { // Ignore things like master queries/connections on GET requests // as long as they are in deferred updates (which catch errors). Profiler::instance()->getTransactionProfiler()->resetExpectations(); // Do any deferred jobs DeferredUpdates::doUpdates('commit'); // Make sure any lazy jobs are pushed JobQueueGroup::pushLazyJobs(); // Log profiling data, e.g. in the database or UDP wfLogProfilingData(); // Commit and close up! $factory = wfGetLBFactory(); $factory->commitMasterChanges(); $factory->shutdown(); wfDebug("Request ended normally\n"); }