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) { function make_stampfile($filename) {
$fp = fopen($filename, "w"); $fp = fopen($filename, "w");
if ($fp) { if (flock($fp, LOCK_EX | LOCK_NB)) {
fwrite($fp, time() . "\n"); fwrite($fp, time() . "\n");
flock($fp, LOCK_UN);
fclose($fp); fclose($fp);
return true; return true;
} else { } 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() { function sql_random_function() {
if (DB_TYPE == "mysql") { if (DB_TYPE == "mysql") {
@ -2314,7 +2330,27 @@
if (ENABLE_UPDATE_DAEMON) { if (ENABLE_UPDATE_DAEMON) {
print "<param key=\"daemon_is_running\" value=\"". print "<param key=\"daemon_is_running\" value=\"".
sprintf("%d", file_is_locked("update_daemon.lock")) . "\"/>"; 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 (CHECK_FOR_NEW_VERSION && $_SESSION["access_level"] >= 10) {
if ($_SESSION["last_version_check"] + 600 < time()) { 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>";
print "<div align='center'>"; 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) { if (k == "daemon_is_running" && v != 1) {
notify_error("<span onclick=\"javascript:explainError(1)\">Update daemon is not running.</span>"); notify_error("<span onclick=\"javascript:explainError(1)\">Update daemon is not running.</span>", true);
} else { 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(''); notify('');
} }