]> git.mxchange.org Git - friendica.git/blobdiff - index.php
If the load is too high, now not only the poller but also the page delivery will...
[friendica.git] / index.php
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://")) {