aboutsummaryrefslogtreecommitdiff
path: root/app/Controllers/feedController.php
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2014-02-11 21:48:10 +0100
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2014-02-11 21:48:10 +0100
commit0cabd1f50dd7d1cf0941a50139e6fbeed6825b4d (patch)
tree404190eba703df08a741623db491ea0917488b6d /app/Controllers/feedController.php
parentd48f612c437009069593978fe43833fe2c7d74ea (diff)
Mutex par flux pour les actualisations
Contribue à https://github.com/marienfressinaud/FreshRSS/issues/351 Nouvelle constante TMP_PATH comme répertoire pour stocker des fichiers temporaires (si possible en mémoire et non sur disque, tel tmpfs pour /tmp sur certaines distributions Linux) Requiert PHP 5.2.1+ (contre 5.2.0 auparavant) pour le `sys_get_temp_dir()`
Diffstat (limited to 'app/Controllers/feedController.php')
-rwxr-xr-xapp/Controllers/feedController.php5
1 files changed, 5 insertions, 0 deletions
diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php
index 55e8f76cf..61bfc5919 100755
--- a/app/Controllers/feedController.php
+++ b/app/Controllers/feedController.php
@@ -189,6 +189,10 @@ class FreshRSS_feed_Controller extends Minz_ActionController {
$flux_update = 0;
$is_read = $this->view->conf->mark_when['reception'] ? 1 : 0;
foreach ($feeds as $feed) {
+ if (!$feed->lock()) {
+ Minz_Log::record('Feed already being actualized: ' . $feed->url(), Minz_Log::NOTICE);
+ continue;
+ }
try {
$url = $feed->url();
$feedHistory = $feed->keepHistory();
@@ -251,6 +255,7 @@ class FreshRSS_feed_Controller extends Minz_ActionController {
$feedDAO->updateLastUpdate ($feed->id (), 1);
}
+ $feed->unlock();
unset($feed);
// On arrête à 10 flux pour ne pas surcharger le serveur