- PHP >= 8
- Laravel
- Postgres
Execute os comandos abaixo para preparar o ambiente de desenvolvimento:
$ composer install
$ cp .env.example .env
Após criar o arquivo .env
será necessário configurar variáveis de ambiente.
Rode as migrações para criar tabelas em seu banco de dados:
$ php artisan migrate
Após configurar o ambiente, basta subir o servidor.
$ php artisan serve
Para facilitar os testes, foi feito um seed que gera nome e e-amils fictícios. O arquivo é salvo em
/storage/app/schedules/batch.csv
Para gerar este arquivo, execute o comando abaixo:
$ php artisan db:seed
Para executar o processamento do arquivo CSV, é necessário que o job esteja rodando em background. Em ambiente de produção é recomendado o supervisor.
$ php artisan queue:listen --queue=emails --tries=3 --backoff=5
Após realizar a leitura do CSV, temos que processar outro worker. Este worker é responsável por buscar os registros e disparar a notificação.
$ php artisan schedule:work