From 095c11f167fb79fe16103f3115b27997063cb62c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 11 Dec 2020 11:10:29 +0100 Subject: [PATCH] =?UTF-8?q?Jobwatcher=20verschickt=20Infomail=20an=20Admin?= =?UTF-8?q?istrator=20falls=20Cronjobs=20im=20Status=20Running=20h=C3=A4ng?= =?UTF-8?q?en=20bleiben?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/cronjobs/jobwatcher.php | 61 +++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 vilesci/cronjobs/jobwatcher.php diff --git a/vilesci/cronjobs/jobwatcher.php b/vilesci/cronjobs/jobwatcher.php new file mode 100644 index 000000000..e46e442f4 --- /dev/null +++ b/vilesci/cronjobs/jobwatcher.php @@ -0,0 +1,61 @@ + + */ +/** + * Prueft ob aktuelle Jobs sich im Status running befinden. + * Falls dies der Fall ist wird ein Warn Mail an den Admin verschickt. + * Dies soll verhindern dass Jobs die stecken geblieben sind nicht mehr gestartet werden da diese im + * Running Status hängen und daher nicht erneut gestartet werden. + */ +require_once(dirname(__FILE__).'/../../config/vilesci.config.inc.php'); +require_once(dirname(__FILE__).'/../../include/mail.class.php'); +require_once(dirname(__FILE__).'/../../include/cronjob.class.php'); + +//ID des Cronjobs holen +$cj = new cronjob(); +if($cj->isJobRunning()) +{ + $cj->getAll(); + + $text = ''; + $found = false; + + foreach($cj->result as $row) + { + if($row->running && (mb_strstr($row->file, 'jobwatcher.php')===false)) + { + $found = true; + $text.="Der Cronjob \"$row->titel\" mit ID $row->cronjob_id ist im Status RUNNING\n"; + $text.="Er wurde zuletzt am \"$row->last_execute\" Uhr gestartet.\n"; + } + } + + if ($found) + { + $text.="Der Status muss gegebenenfalls manuell zurückgesetzt werden da der Job sonst nicht erneut startet\n"; + + $mail = new mail(MAIL_ADMIN, 'no-reply@'.DOMAIN,'CronJob - RUNNING ALERT',$text); + + if(!$mail->send()) + die('Fehler beim Senden des Mails!'); + else + echo 'Cronjob Running Alert verschickt'; + } +} +?>