Nesta aplicação iremos boas práticas com o Laravel Horizon afim de melhor o seu uso em ambientes de produção.
Acesse comandos úteis do Docker para aplicação
- Redis
- Laravel Horizon
- Supervisor
Ajustes necessários:
.env-> DefinirAPP_ENVa chave para o valor deproduction.env-> DefinirQUEUE_CONNECTIONa chave para o valor deredis.env-> Adicionar chaveHORIZON_BASIC_AUTH_USERNAME, o valor será utilizado como usuário de login ao painel do horizon..env-> Adicionar chaveHORIZON_BASIC_AUTH_PASSWORD, o valor será utilizado como senha de login ao painel do horizon.app/Providers/HorizonServiceProvider.php-> Comentar o métodogateapp/Providers/HorizonServiceProvider.php-> Implementar métodoauthorizationHorizonBasicAuthMiddleware-> Executar no CLI o comandophp artisan make:middleware HorizonBasicAuthMiddlewareapp/Http/Middleware/HorizonBasicAuthMiddleware.php-> Implementar o métodohandleconfig/horizon.php-> Adicionar campobasic_authcom as chaves e valoresusernameigual àenv('HORIZON_BASIC_AUTH_USERNAME', 'horizon'),epasswordigual àenv('HORIZON_BASIC_AUTH_PASSWORD', 'password')config/horizon.php-> Adicionar emmiddlewareo valorhorizonBasicAuthapp/Http/Kernel.php-> Adicionar emmiddlewareAliasesa chave ehorizonBasicAuthcom valor\App\Http\Middleware\HorizonBasicAuthMiddleware::class
.env-> DefinirQUEUE_CONNECTIONa chave para o valor deredisconfig/database.php-> Criar conexão Redishorizonconfig/horizon.php-> Alterar Horizon Redis Connection
config/horizon.php-> Realizar ajustes emmetricsetrimapp/Console/Kernel.php-> Implementar emschedulecom o comando$schedule->command('horizon:snapshot')->everyFiveMinutes();
config/horizon.php-> Aplicar filas
config/horizon.php-> Ajustarbalanceparaauto
supervisor-> Realizar configurações para mais 'programs' e vincular a filas.
- Alterar path do Horizon.
.envaplicar variavelHORIZON_PATHcom valor igual ao caminho desejado. - Aplicar tags em Jobs
- Aplicar ShouldBeUnique ou ShouldBeUniqueUntilProcessing
- Comandos do supervisor
- CronJob
- Criar Job
- Quantidade de Processos
- Dúvidas
