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-type: text/plain; charset=UTF-8' . "\n"
|
||||||
. 'Content-transfer-encoding: 8bit' );
|
. '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']);
|
call_hooks('page_end', $a->page['content']);
|
||||||
|
|
||||||
|
if(! $a->install)
|
||||||
|
check_cron_broken();
|
||||||
|
|
||||||
construct_page($a);
|
construct_page($a);
|
||||||
|
|
||||||
session_write_close();
|
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