public function UltimateCronBackgroundProcessLegacyLauncher::launch in Ultimate Cron 7.2
Background Process launch.
Overrides UltimateCronLauncher::launch
File
- plugins/
ultimate_cron/ launcher/ background_process_legacy.class.php, line 377 - Background Process 1.x launcher for Ultimate Cron.
Class
- UltimateCronBackgroundProcessLegacyLauncher
- Ultimate Cron launcher plugin class.
Code
public function launch($job) {
$lock_id = $job
->lock();
if (!$lock_id) {
return FALSE;
}
$settings = $job
->getSettings($this->type);
$handle = 'uc-' . $job->name;
$process = new BackgroundProcess($handle);
$this->exec_status = $this->status = BACKGROUND_PROCESS_STATUS_LOCKED;
// Always run cron job as anonymous user.
$process->uid = 0;
$process->service_group = $settings['service_group'];
$service_host = $process
->determineServiceHost();
if ($this->scheduledLaunch) {
$init_message = t('Launched at service host @name', array(
'@name' => $service_host,
));
}
else {
$init_message = t('Launched manually at service host @name', array(
'@name' => $service_host,
));
}
// We know that the latest log entry has been used for determining the
// schedule. Load the latest log entry and store the timestamp of it for
// later use.
if (!empty($job->recheck)) {
$log_entry = isset($job->log_entry) ? $job->log_entry : $job
->loadLatestLogEntry();
$recheck = $log_entry->start_time;
}
else {
$recheck = FALSE;
}
$log_entry = $job
->startLog($lock_id, $init_message);
if (!$process
->execute(array(
get_class($this),
'job_callback',
), array(
$job->name,
$lock_id,
$recheck,
))) {
watchdog('bgpl_launcher', 'Could not execute background process dispatch for handle @handle', array(
'@handle' => $handle,
), WATCHDOG_ERROR);
$log_entry
->finish();
$this
->unlock($lock_id);
return FALSE;
}
// We want to finish the log in the sub-request.
$log_entry
->unCatchMessages();
drupal_set_message(t('@name: @init_message', array(
'@name' => $job->name,
'@init_message' => $init_message,
)));
return TRUE;
}