2015-01-20 8 views
6

Nello spirito di "chaos monkey" Sto cercando di garantire che un'applicazione laravel continui a funzionare anche quando i servizi da cui dipende non funzionano.Predefinito per Laravel Cache file se redis è inattivo

Utilizza un DB per l'archiviazione primaria e una cache di colore rosso. Quello che mi piacerebbe fare è farlo tornare automaticamente alla cache dei file se e quando la redis fallisce.

Non sono stato in grado di trovare un chiaro esempio.

risposta

9

Un modo per risolvere questo problema è quello di sovrascrivere classe predefinita Illuminate\Cache\CacheManager di laravel e alterare il legame

class MyCacheManager extends Illuminate\Cache\CacheManager 
{ 
    protected function createRedisDriver(array $config) 
    { 
     try { 
      return parent::createRedisDriver($config); 
     } catch (\Exception $e) { 
      //Error with redis 
      //Maybe there is a more explicit exception ;) 
      return $this->resolve('file'); 
     } 
    } 
} 

In alcuni ServiceProvider

$this->app->singleton('cache', function($app) 
{ 
    return new MyCacheManager($app); 
}); 

CIO Questa soluzione inoltre manterrà la facciata Cache lavoro :)

+0

C'è anche un pacchetto che può aiuta con questo: https://github.com/fingo/laravel- cache-fallback – morgul

0

Sembra esserci un pacchetto esattamente per questo: https://github.com/xtcat/laravel-redis-fallback

Non ho ancora trovato pacchetti simili per sessioni o code. Per favore, condividi qui se qualcuno ha.

+0

Interessante. Sembra essere più recente della mia domanda, vale la pena dare un'occhiata. – evandentremont

+0

@Scott C, hai trovato una risoluzione per la tua ricerca ancora, sono anche dopo la stessa cosa e non ho trovato nessuna risposta a questo :( – ctf0

+0

Non ancora. Ancora sulla mia lista delle cose da fare. –

0

Non puoi includere solo una funzione anonima al posto dell'impostazione cnfig del driver della cache?

che potrebbero tentare di usare Redis e se viene a mancare il file di ritorno, l'impostazione e Redis se riesce

+1

questo è più un commento che una nuova risposta alla domanda – slfan

Problemi correlati