I have set up a queue using this code.
function custom_logger_cron_queue_info() {
$queues['custom_logger'] = array(
'worker callback' => 'custom_logger_import',
'time' => 60,
);
return $queues;
}
I add items using this code.
$item = array('uri' => $uri, 'uid' => $uid, 'fid' => $fid);
$queue = DrupalQueue::get('custom_logger');
$queue->createItem($item);
It works great, except that when cron runs every minute for this queue (I am using the Ultimate Cron module to set this) the custom_logger_import()
is only processing one item per run.
function custom_logger_import($item) {
$uri = $item['uri'];
$uid = $item['uid'];
$fid = $item['fid'];
// …
}
Is there something I am missing on ensuring that more items are handled? They are only small jobs that complete in less than a couple seconds, but at the moment its taking 3-4 minutes to process just 3 items.