advancedCron.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. /*
  3. * Simple Cron job
  4. */
  5. /* COMMENTED OUT AS THIS IS AN EXAMPLE
  6. // Initiate Class
  7. $plugin = new HealthChecks();
  8. // Set logger to CRON Channel
  9. $plugin->setLoggerChannel('CRON');
  10. // Check to see if plugin cron job is enabled and check if schedule is set in config value
  11. if ($plugin->config['HEALTHCHECKS-cron-run-enabled'] && $plugin->config['HEALTHCHECKS-cron-run-schedule'] !== '') {
  12. $plugin->logger->debug('Starting cron job for function: HealthChecks run', ['cronJob' => 'HealthChecks']);
  13. $plugin->logger->debug('Validating cron job schedule', ['schedule' => $plugin->config['HEALTHCHECKS-cron-run-schedule']]);
  14. // Validate if schedule is in correct cron format
  15. try {
  16. $schedule = new Cron\CronExpression($plugin->config['HEALTHCHECKS-cron-run-schedule']);
  17. $plugin->logger->debug('Cron schedule has passed validation', ['schedule' => $plugin->config['HEALTHCHECKS-cron-run-schedule']]);
  18. } catch (InvalidArgumentException $e) {
  19. $plugin->logger->critical($e->getMessage());
  20. }
  21. // Setup job for cron
  22. $scheduler->call(
  23. function ($plugin) {
  24. $plugin->logger->debug('Starting cron job for function: HealthChecks run');
  25. return $plugin->_healthCheckPluginRun();
  26. }, [$plugin])
  27. ->then(function ($output) use ($plugin) {
  28. $plugin->logger->debug('Completed cron job', [
  29. 'output' => $output,
  30. ]);
  31. })
  32. ->at($plugin->config['HEALTHCHECKS-cron-run-schedule']);
  33. } else {
  34. $plugin->logger->debug('Cron job is not enabled or is set up incorrectly', ['cronJob' => 'HealthChecks']);
  35. }
  36. */