aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2014-01-02 14:38:06 +0100
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2014-01-02 14:38:06 +0100
commit3b23ca881c63fe6e1cc8ef98ae5a5af645d4870a (patch)
tree37c6d537a254ddebd7cc42f8e6aca9a7792558f7 /app
parentc3211f1b686147229b640b35feb9be49c58b1708 (diff)
Mutex pour actualize_script
Nouveau fichier temporaire ./data/actualize.lock.txt
Diffstat (limited to 'app')
-rwxr-xr-xapp/Controllers/indexController.php2
-rw-r--r--app/FreshRSS.php2
-rwxr-xr-xapp/actualize_script.php20
3 files changed, 20 insertions, 4 deletions
diff --git a/app/Controllers/indexController.php b/app/Controllers/indexController.php
index 5b51b3e28..690ca57be 100755
--- a/app/Controllers/indexController.php
+++ b/app/Controllers/indexController.php
@@ -133,7 +133,7 @@ class FreshRSS_index_Controller extends Minz_ActionController {
// Si on a récupéré aucun article "non lus"
// on essaye de récupérer tous les articles
- if ($state === 'not_read' && empty($entries)) { //TODO: Remove in v0.8
+ if ($state === 'not_read' && empty($entries)) {
Minz_Log::record ('Conflicting information about nbNotRead!', Minz_Log::DEBUG);
$this->view->state = 'all';
$entries = $this->entryDAO->listWhere($getType, $getId, 'all', $order, $nb, $first, $filter, $date_min, $keepHistoryDefault);
diff --git a/app/FreshRSS.php b/app/FreshRSS.php
index 4ebb6d631..f9857a4cb 100644
--- a/app/FreshRSS.php
+++ b/app/FreshRSS.php
@@ -6,7 +6,7 @@ class FreshRSS extends Minz_FrontController {
}
$this->accessControl(Minz_Session::param('currentUser', ''));
$this->loadParamsView();
- $this->loadStylesAndScripts();
+ $this->loadStylesAndScripts(); //TODO: Do not load that when not needed, e.g. some Ajax requests
$this->loadNotifications();
}
diff --git a/app/actualize_script.php b/app/actualize_script.php
index e0f995afe..6009ad849 100755
--- a/app/actualize_script.php
+++ b/app/actualize_script.php
@@ -1,7 +1,19 @@
<?php
require(dirname(__FILE__) . '/../constants.php');
-//TODO: check if already running
+//<Mutex>
+$lock = DATA_PATH . '/actualize.lock.txt';
+if (file_exists($lock) && ((time() - @filemtime($lock)) > 3600)) {
+ @unlink($lock);
+}
+if (($handle = @fopen($lock, 'x')) === false) {
+ syslog(LOG_INFO, 'FreshRSS actualize already running?');
+ return;
+}
+register_shutdown_function('unlink', $lock);
+//Could use http://php.net/function.pcntl-signal.php to catch interruptions
+@fclose($handle);
+//</Mutex>
require(LIB_PATH . '/lib_rss.php'); //Includes class autoloader
@@ -10,8 +22,12 @@ ob_implicit_flush(false);
ob_start();
echo 'Results: ', "\n"; //Buffered
+Minz_Configuration::init();
+
$users = listUsers();
-shuffle($users);
+shuffle($users); //Process users in random order
+array_unshift($users, Minz_Configuration::defaultUser()); //But always start with admin
+$users = array_unique($users);
foreach ($users as $myUser) {
syslog(LOG_INFO, 'FreshRSS actualize ' . $myUser);