Process cron queue.
<?php
$your_queue = 'queue_name';
$queues = module_invoke_all('cron_queue_info');
drupal_alter('cron_queue_info', $queues);
DrupalQueue::get($your_queue)->createQueue();
foreach ($queues as $queue_name => $info) {
if (!empty($info['skip on cron']) || $queue_name != $your_queue) {
// Do not run if queue wants to skip.
continue;
}
$function = $info['worker callback'];
$end = time() + (isset($info['time']) ? $info['time'] : 15);
$queue = DrupalQueue::get($queue_name);
while (time() < $end && ($item = $queue->claimItem())) {
try {
$function($item->data);
$queue->deleteItem($item);
}
catch (Exception $e) {
// In case of exception log it and leave the item in the queue
// to be processed again later.
watchdog_exception('cron', $e);
}
}
}