diff options
Diffstat (limited to 'modules/aggregator/aggregator.module')
-rw-r--r-- | modules/aggregator/aggregator.module | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/modules/aggregator/aggregator.module b/modules/aggregator/aggregator.module index ce2da3c48..765f877e6 100644 --- a/modules/aggregator/aggregator.module +++ b/modules/aggregator/aggregator.module @@ -306,19 +306,31 @@ function aggregator_permission() { /** * Implement hook_cron(). * - * Checks news feeds for updates once their refresh interval has elapsed. + * Queues news feeds for updates once their refresh interval has elapsed. */ function aggregator_cron() { $result = db_query('SELECT * FROM {aggregator_feed} WHERE checked + refresh < :time AND refresh != :never', array( ':time' => REQUEST_TIME, ':never' => AGGREGATOR_CLEAR_NEVER )); + $queue = DrupalQueue::get('aggregator_feeds'); foreach ($result as $feed) { - aggregator_refresh($feed); + $queue->createItem($feed); } } /** + * Implement hook_cron_queue_info(). + */ +function aggregator_cron_queue_info() { + $queues['aggregator_feeds'] = array( + 'worker callback' => 'aggregator_refresh', + 'time' => 60, + ); + return $queues; +} + +/** * Implement hook_block_info(). */ function aggregator_block_info() { |