public function QueueSettings::cron_alter in Ultimate Cron 8.2
Implements hook_cron_alter().
File
- src/
QueueSettings.php, line 157
Class
- QueueSettings
- Queue settings plugin class.
Namespace
Drupal\ultimate_cronCode
public function cron_alter(&$jobs) {
$new_jobs = array();
foreach ($jobs as $job) {
if (!$this
->isValid($job)) {
continue;
}
$settings = $job
->getSettings();
if (isset($settings['settings']['queue']['name'])) {
if ($settings['settings']['queue']['throttle']) {
for ($i = 2; $i <= $settings['settings']['queue']['threads']; $i++) {
$name = $job
->id() . '_' . $i;
$hook = $job->hook;
$hook['settings']['queue']['master'] = $job
->id();
$hook['settings']['queue']['thread'] = $i;
$hook['name'] = $name;
$hook['title'] .= " (#{$i})";
$hook['immutable'] = TRUE;
$new_jobs[$name] = ultimate_cron_prepare_job($name, $hook);
$new_jobs[$name]->settings = $settings + $new_jobs[$name]->settings;
$new_jobs[$name]->title = $job->title . " (#{$i})";
}
}
}
}
$jobs += $new_jobs;
}