[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Paulo Aprimo Junior
Criador Paulo Aprimo Junior 12/05/2021

Olá Carlos, tudo bem?Fiz o sistema de roles e permissions num sistema que estou desenvolvendo, porem quando criei a area de tenants no painel e chamei esses tenants que são mais de 1200. Se eu acessar o painel master que está na lista de config.emails_admin, ele exibe a pagina e todas as unidades, mas se eu cadastro um novo usuário e coloco ele no tenant master como admin, com permissões e regras limitadas, tipo sem poder deletar tenant, aparece "maximum execution time of 30 seconds exceeded" e não carrega. Pra carregar a tabela estou usando datatables, e tenho a mesma quantidade de usuários, porem com usuários não acontece isso. No log do Laravel:Maximum execution time of 30 seconds exceeded at D:\\Sites\\www\\ofertaspravc\\vendor\\barryvdh\\laravel-debugbar\\src\\DataCollector\\QueryCollector.php:414) [stacktrace]. Desde ja agradeço

Criador Paulo Aprimo Junior 12/05/2021

Outra coisa que Notei também é que a debugbar quando acesso com esse novo usuário o master, mostra os seguintes números na pagina de listagem de tenants:

Queries: 7502

Models: 53740

Gate: 1252

Porem acessando com um admin que está no arquivo config.acl.admins_emails, os números são:

Queries: 2

Models: 1240

Gate: 2491

Paulo Aprimo Junior
Manager Carlos Ferreira 12/05/2021

Olá, Paulo!
Tudo bem?

Quando acessa com um usuário que é super admin (que está em no arquivo de configuração acl.php) ele entra no filter before e não passa por todas as verificações necessárias.

Acontece que essas verificações são necessárias, ou seja, para cada permissão cadastrada no sistema precisa validar se o usuário tem acessou ou não a aquele recurso.

Tem solução?
Sim!

Qual a solução?
Cache hoje, cache amanhã, cache pra sempre.

Essas consultas ao banco que estão na trait UserACLTrait, você pode armazenar elas em cache, e sempre pegar diretamente do cache:
Hoje está assim: consulta -> banco
Com cache fica assim: consulta -> cache -> banco

Se já tiver os dados da query em cache não precisa consultar ao banco novamente.

Carlos Ferreira
RICARDO M ASSIS 12/05/2021

Tem algum curso que mostre como implmentar esse cache?

RICARDO M  ASSIS
Manager Carlos Ferreira 12/05/2021

Curso sobre cache: https://academy.especializati.com.br/curso/laravel-api-com-cache

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!