check update daemon timestamp

This commit is contained in:
Andrew Dolgov 2007-07-16 14:05:29 +01:00
parent 2544f36b6f
commit 8e00ae9b58
3 changed files with 56 additions and 3 deletions

View File

@ -1509,8 +1509,9 @@
function make_stampfile($filename) {
$fp = fopen($filename, "w");
if ($fp) {
if (flock($fp, LOCK_EX | LOCK_NB)) {
fwrite($fp, time() . "\n");
flock($fp, LOCK_UN);
fclose($fp);
return true;
} else {
@ -1518,6 +1519,21 @@
}
}
function read_stampfile($filename) {
error_reporting(0);
$fp = fopen($filename, "r");
error_reporting (DEFAULT_ERROR_LEVEL);
if (flock($fp, LOCK_EX)) {
$stamp = fgets($fp);
flock($fp, LOCK_UN);
fclose($fp);
return $stamp;
} else {
return false;
}
}
function sql_random_function() {
if (DB_TYPE == "mysql") {
@ -2314,7 +2330,27 @@
if (ENABLE_UPDATE_DAEMON) {
print "<param key=\"daemon_is_running\" value=\"".
sprintf("%d", file_is_locked("update_daemon.lock")) . "\"/>";
if ($_SESSION["daemon_stamp_check"] + 0 < time()) {
$stamp = (int)read_stampfile("update_daemon.stamp");
if ($stamp) {
if ($stamp + 86400*3 < time()) {
print "<param key=\"daemon_stamp_ok\" value=\"0\"/>";
} else {
print "<param key=\"daemon_stamp_ok\" value=\"1\"/>";
}
$stamp_fmt = date("Y.m.d, G:i", $stamp);
print "<param key=\"daemon_stamp\" value=\"$stamp_fmt\"/>";
}
$_SESSION["daemon_stamp_check"] = time();
}
}
if (CHECK_FOR_NEW_VERSION && $_SESSION["access_level"] >= 10) {
if ($_SESSION["last_version_check"] + 600 < time()) {

View File

@ -26,6 +26,13 @@
}
if ($param == 3) {
print __("TT-RSS has detected that update daemon is taking too long to
perform a feed update. This could indicate a problem like crash
or a hang. Please check the daemon process or contact instance
owner.");
}
print "</div>";
print "<div align='center'>";

View File

@ -604,9 +604,19 @@ function parse_runtime_info(elem) {
}
}
var error_flag;
if (k == "daemon_is_running" && v != 1) {
notify_error("<span onclick=\"javascript:explainError(1)\">Update daemon is not running.</span>");
} else {
notify_error("<span onclick=\"javascript:explainError(1)\">Update daemon is not running.</span>", true);
error_flag = true;
}
if (k == "daemon_stamp_ok" && v != 1) {
notify_error("<span onclick=\"javascript:explainError(3)\">Update daemon is not updating feeds.</span>", true);
error_flag = true;
}
if (!error_flag) {
notify('');
}