Issue #1993100 by damiankloip: Change hook_queue_info() 'worker callback' to be a callable.

8.0.x
Alex Pott 2013-06-11 10:22:50 +01:00
parent 0ac024db37
commit 5ecc704c4e
2 changed files with 4 additions and 4 deletions

View File

@ -4325,11 +4325,11 @@ function drupal_cron_run() {
foreach ($queues as $queue_name => $info) {
if (isset($info['cron'])) {
$function = $info['worker callback'];
$callback = $info['worker callback'];
$end = time() + (isset($info['cron']['time']) ? $info['cron']['time'] : 15);
$queue = Drupal::queue($queue_name);
while (time() < $end && ($item = $queue->claimItem())) {
$function($item->data);
call_user_func_array($callback, array($item->data));
$queue->deleteItem($item);
}
}

View File

@ -211,7 +211,7 @@ function hook_data_type_info_alter(&$data_types) {
* @return
* An associative array where the key is the queue name and the value is
* again an associative array. Possible keys are:
* - 'worker callback': The name of the function to call. It will be called
* - 'worker callback': A PHP callable to call. It will be called
* with one argument, the item created via
* Drupal\Core\Queue\QueueInterface::createItem() in hook_cron().
* - 'cron': (optional) An associative array containing the optional key:
@ -226,7 +226,7 @@ function hook_data_type_info_alter(&$data_types) {
function hook_queue_info() {
$queues['aggregator_feeds'] = array(
'title' => t('Aggregator refresh'),
'worker callback' => 'aggregator_refresh',
'worker callback' => array('Drupal\my_module\MyClass', 'aggregatorRefresh'),
// Only needed if this queue should be processed by cron.
'cron' => array(
'time' => 60,