aboutsummaryrefslogtreecommitdiff
path: root/app/actualize_script.php
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/actualize_script.php
parentc3211f1b686147229b640b35feb9be49c58b1708 (diff)
Mutex pour actualize_script
Nouveau fichier temporaire ./data/actualize.lock.txt
Diffstat (limited to 'app/actualize_script.php')
-rwxr-xr-xapp/actualize_script.php20
1 files changed, 18 insertions, 2 deletions
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);