/** * Cleanup logs. */ public function cleanup() { $jobs = _ultimate_cron_job_load_all(); $current = 1; $max = 0; foreach ($jobs as $job) { if ($job->getPlugin($this->type)->name === $this->name) { $max++; } } foreach ($jobs as $job) { if ($job->getPlugin($this->type)->name === $this->name) { $this->cleanupJob($job); $class = _ultimate_cron_get_class('job'); if ($class::$currentJob) { $class::$currentJob->setProgress($current / $max); $current++; } } } }
/** * Poorman launcher background process callback. * * @param string $lock_id * The lock id used for this process. */ public static function poormanLauncher($lock_id) { $class = _ultimate_cron_get_class('lock'); // Bail out if someone stole our lock. if (!$class::reLock($lock_id, 60)) { return; } ultimate_cron_poorman_page_flush(); // Wait until it's our turn (0 seconds at next minute). $cron_last = variable_get('cron_last', 0); $cron_next = floor(($cron_last + 60) / 60) * 60; $time = time(); if ($time < $cron_next) { $sleep = $cron_next - $time; sleep($sleep); } // Get settings, so we can determine the poormans cron service group. $plugin = _ultimate_cron_plugin_load('launcher', 'background_process_legacy'); if (!$plugin) { $class::unlock($lock_id); throw new Exception(t('Failed to load launcher plugin?!?!?!?!')); } $settings = $plugin->getDefaultSettings(); // In case launchers fail, we don't want to relaunch this process // immediately. _ultimate_cron_variable_save('cron_last', time()); // It's our turn! $launchers = array(); foreach (_ultimate_cron_job_load_all() as $job) { $launcher = $job->getPlugin('launcher'); $launchers[$launcher->name] = $launcher->name; } foreach ($launchers as $name) { $process = new BackgroundProcess('_ultimate_cron_poorman_' . $name); $process->uid = 0; $process->service_group = $settings['poorman_service_group']; $process->start('ultimate_cron_run_launchers', array(array($name))); } // Bail out if someone stole our lock. if (!$class::reLock($lock_id, 60)) { return; } // Wait until it's our turn (0 seconds at next minute). $cron_last = _ultimate_cron_variable_load('cron_last', 0); $cron_next = floor(($cron_last + 60) / 60) * 60; $time = time(); if ($time < $cron_next) { $sleep = $cron_next - $time; sleep($sleep); } // Check poorman settings. If launcher has changed, we don't want // to keepalive. $poorman = _ultimate_cron_plugin_load('settings', 'poorman'); if (!$poorman) { return; } $settings = $poorman->getDefaultSettings(); if (!$settings['launcher'] || $settings['launcher'] !== 'background_process_legacy') { return; } background_process_keepalive(); }