summaryrefslogtreecommitdiff
path: root/modules/aggregator/aggregator.module
diff options
context:
space:
mode:
Diffstat (limited to 'modules/aggregator/aggregator.module')
-rw-r--r--modules/aggregator/aggregator.module16
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() {