Mercurial > hg > cmmr2012-drupal-site
diff vendor/chi-teck/drupal-code-generator/templates/d8/hook/cron.twig @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/chi-teck/drupal-code-generator/templates/d8/hook/cron.twig Thu Jul 05 14:24:15 2018 +0000 @@ -0,0 +1,34 @@ +/** + * 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 = \Drupal::state()->get('mymodule.last_check', 0); + \Drupal::database()->delete('mymodule_table') + ->condition('expires', $expires, '>=') + ->execute(); + \Drupal::state()->set('mymodule.last_check', REQUEST_TIME); + + // Long-running operation example, leveraging a queue: + // Queue news feeds for updates once their refresh interval has elapsed. + $queue = \Drupal::queue('aggregator_feeds'); + $ids = \Drupal::entityManager()->getStorage('aggregator_feed')->getFeedIdsToRefresh(); + foreach (Feed::loadMultiple($ids) as $feed) { + if ($queue->createItem($feed)) { + // Add timestamp to avoid queueing item more than once. + $feed->setQueuedTime(REQUEST_TIME); + $feed->save(); + } + } + $ids = \Drupal::entityQuery('aggregator_feed') + ->condition('queued', REQUEST_TIME - (3600 * 6), '<') + ->execute(); + if ($ids) { + $feeds = Feed::loadMultiple($ids); + foreach ($feeds as $feed) { + $feed->setQueuedTime(0); + $feed->save(); + } + } +}