Mercurial > hg > cmmr2012-drupal-site
annotate vendor/chi-teck/drupal-code-generator/templates/d8/hook/cron.twig @ 5:12f9dff5fda9 tip
Update to Drupal core 8.7.1
author | Chris Cannam |
---|---|
date | Thu, 09 May 2019 15:34:47 +0100 |
parents | c75dbcec494b |
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 } |