You are here

function mailchimp_cron in Mailchimp 2.x

Same name and namespace in other branches
  1. 8 mailchimp.module \mailchimp_cron()
  2. 5.2 mailchimp.module \mailchimp_cron()
  3. 5 mailchimp.module \mailchimp_cron()
  4. 6.2 mailchimp.module \mailchimp_cron()
  5. 6 mailchimp.module \mailchimp_cron()
  6. 7.5 mailchimp.module \mailchimp_cron()
  7. 7 mailchimp.module \mailchimp_cron()
  8. 7.3 mailchimp.module \mailchimp_cron()
  9. 7.4 mailchimp.module \mailchimp_cron()

Implements hook_cron().

Processes queued Mailchimp actions.

1 call to mailchimp_cron()
MailchimpCommands::cron in src/Commands/MailchimpCommands.php
This command will trigger Mailchimp Cron jobs.

File

./mailchimp.module, line 1371
Mailchimp module.

Code

function mailchimp_cron($batch_limit = NULL) {
  $queue = \Drupal::queue(MAILCHIMP_QUEUE_CRON);
  $queue
    ->createQueue();
  $queue_count = $queue
    ->numberOfItems();
  if ($queue_count > 0) {
    $config = \Drupal::config('mailchimp.settings');
    if (is_null($batch_limit)) {
      $batch_limit = $config
        ->get('batch_limit');
    }
    $batch_size = $queue_count < $batch_limit ? $queue_count : $batch_limit;
    $count = 0;
    while ($count < $batch_size) {
      if ($item = $queue
        ->claimItem()) {
        call_user_func_array($item->data['function'], $item->data['args']);
        $queue
          ->deleteItem($item);
      }
      $count++;
    }
  }
  return isset($batch_size) ? $batch_size : $queue_count;
}