From f71f0b1e317bd73a4f5d35540c1b424b4a0057f1 Mon Sep 17 00:00:00 2001
From: Dominik Pfennig <dominik@suma-ev.de>
Date: Mon, 18 Jul 2016 11:07:51 +0200
Subject: [PATCH] =?UTF-8?q?Wenn=20keine=20Redis-Verbindung=20zum=20Logs-Se?=
 =?UTF-8?q?rver=20aufgebaut=20werden=20kann,=20st=C3=BCrzt=20das=20Skript?=
 =?UTF-8?q?=20nicht=20mehr=20ab?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/MetaGer.php                      |  5 +++-
 app/Providers/AppServiceProvider.php | 39 ++++++++++++++++------------
 2 files changed, 27 insertions(+), 17 deletions(-)

diff --git a/app/MetaGer.php b/app/MetaGer.php
index 03679ee95..91e8ed61f 100644
--- a/app/MetaGer.php
+++ b/app/MetaGer.php
@@ -152,7 +152,7 @@ class MetaGer
     private function createLogs()
     {
         $redis = Redis::connection('redisLogs');
-        if( $redis )
+        try
         {
             $logEntry = "";
             $logEntry .= "[" . date(DATE_RFC822, mktime(date("H"),date("i"), date("s"), date("m"), date("d"), date("Y"))) . "]";
@@ -176,6 +176,9 @@ class MetaGer
             $logEntry .= " iter= mm= time=" . round((microtime(true)-$this->starttime), 2) . " serv=" . $this->fokus . " which= hits= stringSearch= QuickTips= SSS= check=";
             $logEntry .= " search=" . $this->eingabe;
             $redis->rpush('logs.search', $logEntry);
+        }catch( \Exception $e)
+        {
+            return;
         }
     }
 
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index 775130e3a..9538eae6c 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -28,25 +28,32 @@ class AppServiceProvider extends ServiceProvider
             $today = strtotime(date(DATE_RFC822, mktime(0,0,0, date("m"), date("d"), date("Y"))));
             $end = strtotime(date(DATE_RFC822, mktime(date("H"),date("i"), date("s"), date("m"), date("d"), date("Y")))) - $today;
             $expireAt = strtotime(date(DATE_RFC822, mktime(0,0,0, date("m"), date("d")+1, date("Y"))));
-            $redis = Redis::connection('redisLogs');
-            $p = getmypid();
-            $host = gethostname();
-            $begin = $this->begin - $today;
-            $redis->pipeline(function($pipe) use ($p, $expireAt, $host, $begin, $end)
-            {
-                for( $i = $begin; $i <= $end; $i++)
+            try{
+                $redis = Redis::connection('redisLogs');
+                if( !$redis )
+                    return;
+                $p = getmypid();
+                $host = gethostname();
+                $begin = $this->begin - $today;
+                $redis->pipeline(function($pipe) use ($p, $expireAt, $host, $begin, $end)
                 {
-                    $pipe->sadd("logs.worker.$host.$i", strval($p));
-                    $pipe->expire("logs.worker.$host.$i", 10);
-                    $pipe->eval("redis.call('hset', 'logs.worker.$host', '$i', redis.call('scard', 'logs.worker.$host.$i'))", 0);
-                    $pipe->sadd("logs.worker", $host);
-                    if( date("H") !== 0 )
+                    for( $i = $begin; $i <= $end; $i++)
                     {
-                        $pipe->expire("logs.worker.$host", $expireAt);
-                        $pipe->expire("logs.worker", $expireAt);
+                        $pipe->sadd("logs.worker.$host.$i", strval($p));
+                        $pipe->expire("logs.worker.$host.$i", 10);
+                        $pipe->eval("redis.call('hset', 'logs.worker.$host', '$i', redis.call('scard', 'logs.worker.$host.$i'))", 0);
+                        $pipe->sadd("logs.worker", $host);
+                        if( date("H") !== 0 )
+                        {
+                            $pipe->expire("logs.worker.$host", $expireAt);
+                            $pipe->expire("logs.worker", $expireAt);
+                        }
                     }
-                }
-            });
+                });
+            }catch( \Exception $e)
+            {
+                return;
+            }
         });
     }
 
-- 
GitLab