add rudimentary hang-check based on pcntl_alarm (2)

This commit is contained in:
Andrew Dolgov 2007-03-15 16:55:49 +01:00
commit c7ab06fb90
2 changed files with 35 additions and 9 deletions

View File

@ -363,7 +363,7 @@
} }
if (defined('DAEMON_EXTENDED_DEBUG')) { if (defined('DAEMON_EXTENDED_DEBUG')) {
print "update_rss_feed: start\n"; _debug("update_rss_feed: start");
} }
$result = db_query($link, "SELECT update_interval,auth_login,auth_pass $result = db_query($link, "SELECT update_interval,auth_login,auth_pass
@ -391,7 +391,7 @@
} }
if (defined('DAEMON_EXTENDED_DEBUG')) { if (defined('DAEMON_EXTENDED_DEBUG')) {
print "update_rss_feed: fetching...\n"; _debug("update_rss_feed: fetching...");
} }
if (!defined('DAEMON_EXTENDED_DEBUG')) { if (!defined('DAEMON_EXTENDED_DEBUG')) {
@ -401,7 +401,7 @@
$rss = fetch_rss($fetch_url); $rss = fetch_rss($fetch_url);
if (defined('DAEMON_EXTENDED_DEBUG')) { if (defined('DAEMON_EXTENDED_DEBUG')) {
print "update_rss_feed: fetch done, parsing...\n"; _debug("update_rss_feed: fetch done, parsing...");
} else { } else {
error_reporting (DEFAULT_ERROR_LEVEL); error_reporting (DEFAULT_ERROR_LEVEL);
} }
@ -492,11 +492,15 @@
foreach ($iterator as $item) { foreach ($iterator as $item) {
$entry_guid = $item["id"]; $entry_guid = $item["id"];
if (!$entry_guid) $entry_guid = $item["guid"]; if (!$entry_guid) $entry_guid = $item["guid"];
if (!$entry_guid) $entry_guid = $item["link"]; if (!$entry_guid) $entry_guid = $item["link"];
if (!$entry_guid) $entry_guid = make_guid_from_title($item["title"]); if (!$entry_guid) $entry_guid = make_guid_from_title($item["title"]);
if (defined('DAEMON_EXTENDED_DEBUG')) {
_debug("update_rss_feed: guid $entry_guid");
}
if (!$entry_guid) continue; if (!$entry_guid) continue;
$entry_timestamp = ""; $entry_timestamp = "";
@ -605,10 +609,18 @@
$entry_content = sanitize_rss($entry_content); $entry_content = sanitize_rss($entry_content);
if (defined('DAEMON_EXTENDED_DEBUG')) {
_debug("update_rss_feed: done collecting data [TITLE:$entry_title]");
}
db_query($link, "BEGIN"); db_query($link, "BEGIN");
if (db_num_rows($result) == 0) { if (db_num_rows($result) == 0) {
if (defined('DAEMON_EXTENDED_DEBUG')) {
_debug("update_rss_feed: base guid not found");
}
// base post entry does not exist, create it // base post entry does not exist, create it
$result = db_query($link, $result = db_query($link,
@ -661,6 +673,10 @@
if (db_num_rows($result) == 1) { if (db_num_rows($result) == 1) {
if (defined('DAEMON_EXTENDED_DEBUG')) {
_debug("update_rss_feed: base guid found, creating user ref");
}
// this will be used below in update handler // this will be used below in update handler
$orig_content_hash = db_fetch_result($result, 0, "content_hash"); $orig_content_hash = db_fetch_result($result, 0, "content_hash");
$orig_title = db_fetch_result($result, 0, "title"); $orig_title = db_fetch_result($result, 0, "title");
@ -764,6 +780,10 @@
db_query($link, "COMMIT"); db_query($link, "COMMIT");
if (defined('DAEMON_EXTENDED_DEBUG')) {
_debug("update_rss_feed: looking for tags...");
}
/* taaaags */ /* taaaags */
// <a href="http://technorati.com/tag/Xorg" rel="tag">Xorg</a>, // // <a href="http://technorati.com/tag/Xorg" rel="tag">Xorg</a>, //
@ -857,7 +877,7 @@
} }
if (defined('DAEMON_EXTENDED_DEBUG')) { if (defined('DAEMON_EXTENDED_DEBUG')) {
print "update_rss_feed: done\n"; _debug("update_rss_feed: done");
} }
} }
@ -1938,7 +1958,7 @@
} }
function get_script_dt_add() { function get_script_dt_add() {
if (strpos(VERSION, "99") === false) { if (strpos(VERSION, ".99") === false) {
return VERSION; return VERSION;
} else { } else {
return time(); return time();

View File

@ -3,13 +3,19 @@
// this daemon runs in the background and updates all feeds // this daemon runs in the background and updates all feeds
// continuously // continuously
define('DEFAULT_ERROR_LEVEL', E_ALL); // define('DEFAULT_ERROR_LEVEL', E_ALL);
define('DEFAULT_ERROR_LEVEL', E_ERROR | E_WARNING | E_PARSE);
declare(ticks = 1); declare(ticks = 1);
define('MAGPIE_CACHE_DIR', '/var/tmp/magpie-ttrss-cache-daemon'); define('MAGPIE_CACHE_DIR', '/var/tmp/magpie-ttrss-cache-daemon');
define('DISABLE_SESSIONS', true); define('DISABLE_SESSIONS', true);
define('DAEMON_EXTENDED_DEBUG', true);
require_once "version.php";
if (strpos(VERSION, ".99") !== false) {
define('DAEMON_EXTENDED_DEBUG', true);
}
define('PURGE_INTERVAL', 3600); // seconds define('PURGE_INTERVAL', 3600); // seconds
@ -25,7 +31,7 @@
require_once "functions.php"; require_once "functions.php";
require_once "magpierss/rss_fetch.inc"; require_once "magpierss/rss_fetch.inc";
error_reporting(E_ALL); error_reporting(DEFAULT_ERROR_LEVEL);
function sigint_handler() { function sigint_handler() {
unlink("update_daemon.lock"); unlink("update_daemon.lock");