diff options
author | Andrew Dolgov <[email protected]> | 2008-01-25 04:28:14 +0100 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2008-01-25 04:28:14 +0100 |
commit | 740751d8cc40403636dbcb9317782e75a233fed4 (patch) | |
tree | 73282ec4b7e1e47faa35acfedd852a61bb37a28b | |
parent | b086fed42877dd306719bc4d6ae4170f31ccf49a (diff) |
simplepie: fix feed-not-found bug; update daemon1 to some code from daemon2
-rw-r--r-- | functions.php | 2 | ||||
-rw-r--r-- | simplepie/simplepie.inc | 5 | ||||
-rw-r--r-- | update_daemon_loop.php | 17 |
3 files changed, 22 insertions, 2 deletions
diff --git a/functions.php b/functions.php index cea42549d..d4f7cce99 100644 --- a/functions.php +++ b/functions.php @@ -543,7 +543,7 @@ $rss = new SimplePie(); $rss->set_useragent(SIMPLEPIE_USERAGENT . MAGPIE_USER_AGENT_EXT); - $rss->set_timeout(20); + $rss->set_timeout(10); $rss->set_feed_url($fetch_url); $rss->set_output_encoding('UTF-8'); diff --git a/simplepie/simplepie.inc b/simplepie/simplepie.inc index fce53d396..a90b9ce0e 100644 --- a/simplepie/simplepie.inc +++ b/simplepie/simplepie.inc @@ -7616,6 +7616,11 @@ class SimplePie_File return $this->SimplePie_File($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen); } } + // No feed fount at error correction. + // according to http://simplepie.org/support/viewtopic.php?id=1430 + else { + $this->success = false; + } } } else diff --git a/update_daemon_loop.php b/update_daemon_loop.php index 4c13dedce..320bec414 100644 --- a/update_daemon_loop.php +++ b/update_daemon_loop.php @@ -155,8 +155,23 @@ $user_prefs_cache = array(); _debug(sprintf("Scheduled %d feeds to update...\n", db_num_rows($result))); - + + // Here is a little cache magic in order to minimize risk of double feed updates. + $feeds_to_update = array(); while ($line = db_fetch_assoc($result)) { + $feeds_to_update[$line['id']] = $line; + } + + // We update the feed last update started date before anything else. + // There is no lag due to feed contents downloads + // It prevent an other process to update the same feed (for exemple, forced update by user). + $feed_ids = array_keys($feeds_to_update); + if($feed_ids) { + db_query($link, sprintf("UPDATE ttrss_feeds SET last_update_started = NOW() + WHERE id IN (%s)", implode(',', $feed_ids))); + } + + while ($line = array_pop($feeds_to_update)) { _debug("Feed: " . $line["feed_url"] . ", " . $line["last_updated"]); |