diff options
Diffstat (limited to 'modules/aggregator')
-rw-r--r-- | modules/aggregator/aggregator.module | 16 | ||||
-rw-r--r-- | modules/aggregator/aggregator.test | 3 |
2 files changed, 16 insertions, 3 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() { diff --git a/modules/aggregator/aggregator.test b/modules/aggregator/aggregator.test index 16d5e64ca..2439adbbc 100644 --- a/modules/aggregator/aggregator.test +++ b/modules/aggregator/aggregator.test @@ -128,7 +128,8 @@ class AggregatorTestCase extends DrupalWebTestCase { */ function updateAndRemove($feed, $expected_count) { $this->updateFeedItems($feed, $expected_count); - $this->assertText('There is new syndicated content from'); + $count = db_query('SELECT COUNT(*) FROM {aggregator_item} WHERE fid = :fid', array(':fid' => $feed->fid))->fetchField(); + $this->assertTrue($count); $this->removeFeedItems($feed); $count = db_query('SELECT COUNT(*) FROM {aggregator_item} WHERE fid = :fid', array(':fid' => $feed->fid))->fetchField(); $this->assertTrue($count == 0); |