]> git.mxchange.org Git - friendica.git/commitdiff
If the load is too high, now not only the poller but also the page delivery will...
authorMichael Vogel <icarus@dabo.de>
Sun, 15 Mar 2015 06:45:50 +0000 (07:45 +0100)
committerMichael Vogel <icarus@dabo.de>
Sun, 15 Mar 2015 06:45:50 +0000 (07:45 +0100)
include/cronhooks.php
include/delivery.php
include/poller.php
index.php

index 3a09da48ceb3a16dba777731ea2e3e72efb058ea..26cab3cf92a86a0c3a2b566f3d24dc56ed7e356c 100644 (file)
@@ -30,7 +30,7 @@ function cronhooks_run(&$argv, &$argc){
        if(function_exists('sys_getloadavg')) {
                $load = sys_getloadavg();
                if(intval($load[0]) > $maxsysload) {
-                       logger('system: load ' . $load . ' too high. Poller deferred to next scheduled run.');
+                       logger('system: load ' . $load[0] . ' too high. Cronhooks deferred to next scheduled run.');
                        return;
                }
        }
index 1def8ad2cc52d4367940da36d6b83acde4fe2abf..a913e131701866d86e4d1a8d42ca159a3dbb0a16 100644 (file)
@@ -60,7 +60,7 @@ function delivery_run(&$argv, &$argc){
                if(function_exists('sys_getloadavg')) {
                        $load = sys_getloadavg();
                        if(intval($load[0]) > $maxsysload) {
-                               logger('system: load ' . $load . ' too high. Delivery deferred to next queue run.');
+                               logger('system: load ' . $load[0] . ' too high. Delivery deferred to next queue run.');
                                return;
                        }
                }
index cef11a74431a111fa268fe93ea919ab4539a89f9..933624ecb57ef0621e3cfc4e6adac52c8b71cc8e 100644 (file)
@@ -46,7 +46,7 @@ function poller_run(&$argv, &$argc){
        if(function_exists('sys_getloadavg')) {
                $load = sys_getloadavg();
                if(intval($load[0]) > $maxsysload) {
-                       logger('system: load ' . $load . ' too high. Poller deferred to next scheduled run.');
+                       logger('system: load ' . $load[0] . ' too high. Poller deferred to next scheduled run.');
                        return;
                }
        }
index 295db01da2138b42d4ae0caee25e1a7a544eec32..949ccd532be9701ff77add799fcef881c8744fcc 100644 (file)
--- a/index.php
+++ b/index.php
@@ -53,6 +53,20 @@ if(!$install) {
        load_config('config');
        load_config('system');
 
+       $maxsysload = intval(get_config('system','maxloadavg'));
+       if($maxsysload < 1)
+               $maxsysload = 50;
+       if(function_exists('sys_getloadavg')) {
+               $load = sys_getloadavg();
+               if(intval($load[0]) > $maxsysload) {
+                       logger('system: load ' . $load[0] . ' too high. Service Temporarily Unavailable.');
+                       header($_SERVER["SERVER_PROTOCOL"].' 503 Service Temporarily Unavailable');
+                       header('Retry-After: 300');
+                       die("System is currently unavailable. Please try again later");
+               }
+       }
+
+
        if (get_config('system','force_ssl') AND ($a->get_scheme() == "http") AND
                (intval(get_config('system','ssl_policy')) == SSL_POLICY_FULL) AND
                (substr($a->get_baseurl(), 0, 8) == "https://")) {