]> git.mxchange.org Git - friendica.git/commitdiff
Only fetch the processes if needed
authorMichael <heluecht@pirati.ca>
Sat, 3 Dec 2022 19:44:50 +0000 (19:44 +0000)
committerMichael <heluecht@pirati.ca>
Sat, 3 Dec 2022 19:44:50 +0000 (19:44 +0000)
src/Core/System.php
src/Core/Worker.php

index e0c23e55b9e4a9c1475cceee40bfbdb0abefddcd..aa2d81d8959e03c32fd182947418522eef6de235 100644 (file)
@@ -438,11 +438,12 @@ class System
        /**
         * Fetch the load and number of processes
         *
+        * @param bool $get_processes
         * @return array
         */
-       public static function getLoadAvg(): array
+       public static function getLoadAvg(bool $get_processes = true): array
        {
-               if (@is_readable('/proc/loadavg')) {
+               if ($get_processes && @is_readable('/proc/loadavg')) {
                        $content = @file_get_contents('/proc/loadavg');
                        if (empty($content)) {
                                $content = shell_exec('uptime | sed "s/.*averages*: //" | sed "s/,//g"');
index 47da04b35cfe9b8d2a39775e4022ecf130deb340..d6f97eed21f289570c2f5540f34e49bb243c08af 100644 (file)
@@ -462,7 +462,7 @@ class Worker
                        return false;
                }
 
-               $load = System::getLoadAvg();
+               $load = System::getLoadAvg($processes_cooldown != 0);
                if (empty($load)) {
                        return false;
                }
@@ -508,7 +508,7 @@ class Worker
 
                $sleeping = false;
 
-               while ($load = System::getLoadAvg()) {
+               while ($load = System::getLoadAvg($processes_cooldown != 0)) {
                        if (($load_cooldown > 0) && ($load['average1'] > $load_cooldown)) {
                                if (!$sleeping) {
                                        Logger::notice('Load induced pre execution cooldown.', ['max' => $load_cooldown, 'load' => $load, 'called-by' => System::callstack(1)]);