automated warning after a few days if poller is dead
This commit is contained in:
parent
e6eee5ba92
commit
37384c0b27
43
boot.php
43
boot.php
@ -2296,4 +2296,47 @@ function cert_bad_email() {
|
||||
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
||||
. 'Content-transfer-encoding: 8bit' );
|
||||
|
||||
}
|
||||
|
||||
|
||||
// send warnings every 3-5 days if cron is not running.
|
||||
|
||||
|
||||
function check_cron_broken() {
|
||||
|
||||
$t = get_config('system','lastpollcheck');
|
||||
if(! $t) {
|
||||
// never checked before. Start the timer.
|
||||
set_config('system','lastpollcheck',datetime_convert());
|
||||
return;
|
||||
}
|
||||
if($t > datetime_convert('UTC','UTC','now - 3 days')) {
|
||||
// Wait for 3 days before we do anything so as not to swamp the admin with messages
|
||||
return;
|
||||
}
|
||||
|
||||
$d = get_config('system','lastpoll');
|
||||
if(($d) && ($d > datetime_convert('UTC','UTC','now - 3 days'))) {
|
||||
// Scheduled tasks have run successfully in the last 3 days.
|
||||
set_config('system','lastpollcheck',datetime_convert());
|
||||
return;
|
||||
}
|
||||
|
||||
$a = get_app();
|
||||
|
||||
$email_tpl = get_intltext_template("cron_bad_eml.tpl");
|
||||
$email_msg = replace_macros($email_tpl, array(
|
||||
'$sitename' => $a->config['system']['sitename'],
|
||||
'$siteurl' => $a->get_baseurl(),
|
||||
'$error' => t('Cron/Scheduled tasks not running.'),
|
||||
'$lastdate' => (($d)? $d : t('never'))
|
||||
));
|
||||
|
||||
$subject = email_header_encode(sprintf(t('[red] Cron tasks not running on %s'), $a->get_hostname()));
|
||||
mail($a->config['system']['admin_email'], $subject, $email_msg,
|
||||
'From: Administrator' . '@' . $a->get_hostname() . "\n"
|
||||
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
||||
. 'Content-transfer-encoding: 8bit' );
|
||||
set_config('system','lastpollcheck',datetime_convert());
|
||||
return;
|
||||
}
|
@ -396,6 +396,9 @@ if(stristr( implode("",$_SESSION['sysmsg']), t('Permission denied'))) {
|
||||
|
||||
call_hooks('page_end', $a->page['content']);
|
||||
|
||||
if(! $a->install)
|
||||
check_cron_broken();
|
||||
|
||||
construct_page($a);
|
||||
|
||||
session_write_close();
|
||||
|
17
view/en/cron_bad_eml.tpl
Normal file
17
view/en/cron_bad_eml.tpl
Normal file
@ -0,0 +1,17 @@
|
||||
This is the webserver at {{$sitename}};
|
||||
|
||||
A routine check indicates the scheduled maintenance tasks on this
|
||||
website are not running. Please review your "cron" jobs or the
|
||||
equivalent mechanism on your operating system and ensure these are
|
||||
running. Please review the INSTALL instructions if you are seeing
|
||||
this message for the first time. If these maintenance tasks have
|
||||
been running normally until now, please check to see if anything
|
||||
may have gone wrong to account for them not running currently.
|
||||
This check is run approximately every three days.
|
||||
|
||||
The error message is '{{$error}}'.
|
||||
|
||||
The last successful execution was '{{$lastdate}}'.
|
||||
|
||||
Apologies for the inconvenience,
|
||||
your web server at {{$siteurl}}
|
Reference in New Issue
Block a user