annotate 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
rev   line source
Chris@0 1 /**
Chris@0 2 * Implements hook_cron().
Chris@0 3 */
Chris@0 4 function {{ machine_name }}_cron() {
Chris@0 5 // Short-running operation example, not using a queue:
Chris@0 6 // Delete all expired records since the last cron run.
Chris@0 7 $expires = \Drupal::state()->get('mymodule.last_check', 0);
Chris@0 8 \Drupal::database()->delete('mymodule_table')
Chris@0 9 ->condition('expires', $expires, '>=')
Chris@0 10 ->execute();
Chris@0 11 \Drupal::state()->set('mymodule.last_check', REQUEST_TIME);
Chris@0 12
Chris@0 13 // Long-running operation example, leveraging a queue:
Chris@0 14 // Queue news feeds for updates once their refresh interval has elapsed.
Chris@0 15 $queue = \Drupal::queue('aggregator_feeds');
Chris@0 16 $ids = \Drupal::entityManager()->getStorage('aggregator_feed')->getFeedIdsToRefresh();
Chris@0 17 foreach (Feed::loadMultiple($ids) as $feed) {
Chris@0 18 if ($queue->createItem($feed)) {
Chris@0 19 // Add timestamp to avoid queueing item more than once.
Chris@0 20 $feed->setQueuedTime(REQUEST_TIME);
Chris@0 21 $feed->save();
Chris@0 22 }
Chris@0 23 }
Chris@0 24 $ids = \Drupal::entityQuery('aggregator_feed')
Chris@0 25 ->condition('queued', REQUEST_TIME - (3600 * 6), '<')
Chris@0 26 ->execute();
Chris@0 27 if ($ids) {
Chris@0 28 $feeds = Feed::loadMultiple($ids);
Chris@0 29 foreach ($feeds as $feed) {
Chris@0 30 $feed->setQueuedTime(0);
Chris@0 31 $feed->save();
Chris@0 32 }
Chris@0 33 }
Chris@0 34 }