summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2007-07-16 14:05:29 +0100
committerAndrew Dolgov <[email protected]>2007-07-16 14:05:29 +0100
commit8e00ae9b58cceccaf10b7bf8600131b8d6e671a4 (patch)
tree9968c81d03458b99bf66102a1cba82415e5ad875
parent2544f36b6ffd1f14dc5007ca2710cfd13c4dcccb (diff)
check update daemon timestamp
-rw-r--r--functions.php38
-rw-r--r--modules/popup-dialog.php7
-rw-r--r--tt-rss.js14
3 files changed, 56 insertions, 3 deletions
diff --git a/functions.php b/functions.php
index 1aa6f32b4..6376a282c 100644
--- a/functions.php
+++ b/functions.php
@@ -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()) {
diff --git a/modules/popup-dialog.php b/modules/popup-dialog.php
index ef9f13629..562093d9d 100644
--- a/modules/popup-dialog.php
+++ b/modules/popup-dialog.php
@@ -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'>";
diff --git a/tt-rss.js b/tt-rss.js
index 96418db9e..10f1a7ef3 100644
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -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('');
}