automated warning after a few days if poller is dead

This commit is contained in:
friendica 2015-03-02 18:02:06 -08:00
parent e6eee5ba92
commit 37384c0b27
3 changed files with 63 additions and 0 deletions

View File

@ -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;
}

View File

@ -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
View 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}}