/** * Implements hook_cron(). */ function {{ machine_name }}_cron() { // Short-running operation example, not using a queue: // Delete all expired records since the last cron run. $expires = variable_get('mymodule_cron_last_run', REQUEST_TIME); db_delete('mymodule_table') ->condition('expires', $expires, '>=') ->execute(); variable_set('mymodule_cron_last_run', REQUEST_TIME); // Long-running operation example, leveraging a queue: // Fetch feeds from other sites. $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) { $queue->createItem($feed); } }