View source
<?php
namespace Drupal\ultimate_cron;
class CronSignal {
public static function peek($name, $signal) {
$database = \Drupal::service('ultimate_cron.database_factory');
return $database
->select('ultimate_cron_signal', 's')
->fields('s', array(
'job_name',
))
->condition('job_name', $name)
->condition('signal_name', $signal)
->condition('claimed', 0)
->execute()
->fetchField();
}
public static function get($name, $signal) {
$database = \Drupal::service('ultimate_cron.database_factory');
$claimed = $database
->update('ultimate_cron_signal')
->fields(array(
'claimed' => 1,
))
->condition('job_name', $name)
->condition('signal_name', $signal)
->condition('claimed', 0)
->execute();
if ($claimed) {
$database
->delete('ultimate_cron_signal')
->condition('job_name', $name)
->condition('signal_name', $signal)
->condition('claimed', 1)
->execute();
}
return $claimed;
}
public static function set($name, $signal) {
$database = \Drupal::service('ultimate_cron.database_factory');
return $database
->merge('ultimate_cron_signal')
->keys(array(
'job_name' => $name,
'signal_name' => $signal,
))
->fields(array(
'claimed' => 0,
))
->execute();
}
public static function clear($name, $signal) {
$database = \Drupal::service('ultimate_cron.database_factory');
$database
->delete('ultimate_cron_signal')
->condition('job_name', $name)
->condition('signal_name', $signal)
->execute();
}
public static function flush($name) {
$database = \Drupal::service('ultimate_cron.database_factory');
$database
->delete('ultimate_cron_signal')
->condition('job_name', $name)
->execute();
}
}