You are here

function Notifications_Queue::process_run in Notifications 6.4

Function to be called on cron by the main notifications_cron

It will call each subscription_process for each interval a number of times

This should send out messages starting with immediate delivery. We send first immediate delivery because the other ones can be added up for each period. Assumption: The bigger the interval, the longer delay it may admit (?) I.e. sending hourly email after 1 hour 15 mins may be ok if the system is overloaded.

Return value

int Number of rows processed

1 call to Notifications_Queue::process_run()
Notifications_Queue::process_cron in includes/notifications_queue.class.inc
Callback for Drupal cron

File

includes/notifications_queue.class.inc, line 88

Class

Notifications_Queue
Queue management and processing

Code

function process_run() {
  notifications_log('Starting notifications process');
  $count = 0;
  $stop = FALSE;
  $send_intervals = _notifications_send_intervals();
  unset($send_intervals[-1]);
  if ($max_sqid = $this
    ->process_prepare()) {
    foreach ($send_intervals as $interval => $name) {
      notifications_log('Processing queue', array(
        'send interval' => $name,
      ));
      while ($rows = $this
        ->process_queue($interval, $max_sqid)) {
        $count += $rows;
        $stop = !$this
          ->process_control('check');
      }
      if ($stop) {
        notifications_log('Process stopped, reached processing limits');
        break;
      }
      else {
        notifications_log('Process finished', array(
          'send interval' => $name,
        ));
      }
    }
  }
  else {
    notifications_log('No rows in queue');
  }
  $this
    ->process_control('stop');
  return $count;
}