summaryrefslogtreecommitdiff
path: root/app/actualize_script.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/actualize_script.php')
-rwxr-xr-xapp/actualize_script.php21
1 files changed, 19 insertions, 2 deletions
diff --git a/app/actualize_script.php b/app/actualize_script.php
index e0f995afe..9ac80a852 100755
--- a/app/actualize_script.php
+++ b/app/actualize_script.php
@@ -1,7 +1,20 @@
<?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_NOTICE, 'FreshRSS actualize already running?');
+ fwrite(STDERR, 'FreshRSS actualize already running?' . "\n");
+ 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 +23,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);