multi-tenant
multi-tenant copied to clipboard
CacheServiceeProvider tenant identification for background processes
Hyn/Tenant 5.6 the example uses $app['config']['driver'] to get the tenant UUID, however it is always null. Does anybody know how to detect the Tenant in CLI operations like background processes? I have some background processes that need to clear Cached entries.
public function boot()
{
Cache::extend('redis_tenancy', function ($app) {
if (PHP_SAPI === 'cli') {
$uuid = $app['config']['driver'];
}
return Cache::repository(new RedisStore(
$app['redis'],
$uuid,
$app['config']['cache.stores.redis.connection']
));
});
}
I used another solution to solve this problem, which you can check in the AppServiceProvider boot() and fix by adding a cache prefix
public function boot()
{
$website = \Hyn\Tenancy\Facades\TenancyFacade::website();
if ($website) {
Cache::setPrefix(Str::slug($website->uuid, '_') . '_cache');
}
}
Thanks @FloneJan I have to try this out.