cron.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace MGModule\DNSManager2\controllers\addon\admin;
  3. use \MGModule\DNSManager2 as main;
  4. use \MGModule\DNSManager2\mgLibs\custom\helpers\TimeDiffHelper;
  5. use \MGModule\DNSManager2\mgLibs\custom\manager\GlobalSettingHelper;
  6. use \MGModule\DNSManager2\mgLibs\custom\TaskManager;
  7. use \MGModule\DNSManager2\models\custom\globalsetting\GlobalSettingEnum;
  8. use \MGModule\DNSManager2\models\custom\task\TaskStatusEnum;
  9. class cron extends main\mgLibs\process\abstractController{
  10. private $default_tasks = array("LogCleaner:main", "NotificationCleaner:main", "Synchronization:main", "Cleaner:main","ZoneStatus:main", "Backupper:main");
  11. public function indexCRON($input, $vars = array()) {
  12. $this->checkIfDefaultTaskExists();
  13. $diff = TimeDiffHelper::diff(GlobalSettingHelper::getSetting(GlobalSettingEnum::CRON_LAST_RUN));
  14. GlobalSettingHelper::setSetting(GlobalSettingEnum::CRON_RUN_TIME_PERIOD, $diff->minutes);
  15. GlobalSettingHelper::setSetting(GlobalSettingEnum::CRON_LAST_RUN, date('Y-m-d H:i:s'));
  16. $main_tasks = TaskManager::getXTasksObjects(100, false, 0, array(TaskStatusEnum::START, TaskStatusEnum::IN_PROGRESS));
  17. foreach($main_tasks as $task)
  18. {
  19. $task->run();
  20. }
  21. return array();
  22. }
  23. private function checkIfDefaultTaskExists() {
  24. foreach($this->default_tasks as $task_name) {
  25. $task = TaskManager::getXTasksObjects(1, $task_name, 0, array(TaskStatusEnum::START, TaskStatusEnum::IN_PROGRESS));
  26. if(empty($task))
  27. {
  28. if($task_name ==='ZoneStatus:main' && count(main\mgLibs\custom\helpers\StatusHelper::getRows()))
  29. {
  30. TaskManager::addTask($task_name);
  31. }
  32. elseif ($task_name !== 'ZoneStatus:main')
  33. {
  34. TaskManager::addTask($task_name);
  35. }
  36. }
  37. }
  38. }
  39. }