X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=update_daemon2.php;h=6ccdbcb100e5a7fc2afd614563a1098159b92e76;hb=9b27cec8c01ff231085bc2045d196ace85e299d9;hp=c8556a61e6d499b1bbe223f2d6a039db03df9f9e;hpb=8ccaff02b50c32acb6162f9f527bf2801f725ace;p=tt-rss.git diff --git a/update_daemon2.php b/update_daemon2.php index c8556a61..6ccdbcb1 100755 --- a/update_daemon2.php +++ b/update_daemon2.php @@ -3,10 +3,8 @@ // This is an experimental multiprocess update daemon. // Some configurable variable may be found below. - // define('DEFAULT_ERROR_LEVEL', E_ALL); - define('DEFAULT_ERROR_LEVEL', E_ERROR | E_WARNING | E_PARSE); - declare(ticks = 1); + chdir(dirname(__FILE__)); define('DISABLE_SESSIONS', true); @@ -29,17 +27,11 @@ die("error: This script requires PHP compiled with PCNTL module.\n"); } - if (!ENABLE_UPDATE_DAEMON) { - die("error: Please enable option ENABLE_UPDATE_DAEMON in config.php\n"); - } - require_once "db.php"; require_once "db-prefs.php"; require_once "functions.php"; require_once "lib/magpierss/rss_fetch.inc"; - error_reporting(DEFAULT_ERROR_LEVEL); - $children = array(); $ctimes = array(); @@ -53,7 +45,8 @@ foreach ($children as $pid) { if (pcntl_waitpid($pid, $status, WNOHANG) != $pid) { - if (file_is_locked(LOCK_DIRECTORY . "/update_daemon-$pid.lock")) { + + if (file_is_locked("update_daemon-$pid.lock")) { array_push($tmp, $pid); } else { _debug("[reap_children] child $pid seems active but lockfile is unlocked."); @@ -71,7 +64,7 @@ function check_ctimes() { global $ctimes; - + foreach (array_keys($ctimes) as $pid) { $started = $ctimes[$pid]; @@ -105,12 +98,12 @@ function sigint_handler() { shutdown(); die("[SIGINT] removing lockfile and exiting.\n"); - } + } function task_sigint_handler() { task_shutdown(); die("[SIGINT] removing lockfile and exiting.\n"); - } + } pcntl_signal(SIGCHLD, 'sigchld_handler'); @@ -136,13 +129,13 @@ // Testing database connection. // It is unnecessary to start the fork loop if database is not ok. - $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); + $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); if (!$link) { if (DB_TYPE == "mysql") { print mysql_error(); } - // PG seems to display its own errors just fine by default. + // PG seems to display its own errors just fine by default. return; } @@ -193,13 +186,13 @@ $start_timestamp = time(); - $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); + $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); if (!$link) { if (DB_TYPE == "mysql") { print mysql_error(); } - // PG seems to display its own errors just fine by default. + // PG seems to display its own errors just fine by default. return; } @@ -209,20 +202,27 @@ // not really, tho for the time being -fox if (!make_stampfile('update_daemon.stamp')) { print "warning: unable to create stampfile"; - } + } - // Call to the feed batch update function + // Call to the feed batch update function // or regenerate feedbrowser cache if (rand(0,100) > 30) { update_daemon_common($link); } else { $count = update_feedbrowser_cache($link); - _debug("Finished, $count feeds processed."); + _debug("Feedbrowser updated, $count feeds processed."); + + purge_orphans($link, true); + + $rc = cleanup_tags($link, 14, 50000); + + _debug("Cleaned $rc cached tags."); + } _debug("Elapsed time: " . (time() - $start_timestamp) . " second(s)"); - + db_close($link); // We are in a fork.