laravel

Tutorial do Laravel Scheduler

Tutorial do Laravel Scheduler
Algumas tarefas devem ser executadas regularmente em qualquer aplicativo, e seria mais eficiente se as tarefas pudessem ser feitas automaticamente. O framework Laravel torna estes tipos de tarefas mais fáceis usando o Laravel Scheduler. Envio de emails em massa relacionados à oferta, otimização de dados, geração de relatórios, manutenção de backup de aplicativos e remoção de usuários inativos são alguns exemplos comuns de tarefas repetitivas que podem ser realizadas com o Laravel Scheduler. O Laravel pode executar tarefas específicas periodicamente usando um gerenciador de tarefas embutido chamado Milho trabalho. O arquivo de configuração chamado Corntab é usado por Milho para gerenciar tarefas de agendamento. Este tutorial mostra como gerenciar tarefas repetitivas, criando Milho trabalhos e execução de agendamento de tarefas.

Pré-requisitos

Antes de iniciar este tutorial, primeiro, conclua as seguintes tarefas:

  1. Crie um novo projeto Laravel
  2. Configure a conexão do banco de dados
  3. Execute o comando migrate para criar uma tabela de usuário
  4. Defina a configuração para enviar e-mails (o SMTP é usado aqui para enviar e-mails.)

Implementar autenticação padrão

Primeiro, implemente o sistema de autenticação de usuário padrão do Laravel para completar a tarefa de agendamento mostrada neste tutorial. Execute os seguintes comandos do terminal para implementar a autenticação padrão do Laravel usando o Vue.

$ composer requer laravel / ui
$ php artisan ui vue -auth

Execute o seguinte comando para compilar a nova estrutura para obter o conteúdo atualizado.

$ npm install && npm run dev

Execute o seguinte comando para limpar o cache da rota.

rota $ php artisan: clear

Execute o seguinte comando para iniciar o servidor de desenvolvimento Laravel e verifique se o sistema de autenticação de usuário padrão está funcionando.

$ php artisan serve

Abra qualquer navegador e execute o seguinte URL no navegador. Se o Conecte-se e registro link aparece e funciona corretamente, então a implementação da autenticação padrão foi concluída corretamente.

http: // localhost: 8000

Crie uma classe disponível e um comando artesanal

Muitos novos usuários criarão contas diariamente e realizarão muitas tarefas relacionadas aos usuários registrados quando o projeto estiver online. Às vezes, o aplicativo precisa saber quantos usuários criaram contas a cada dia. Se essas informações forem necessárias regularmente, é melhor executar uma consulta específica após um intervalo regular. Um comando do Laravel é usado aqui para obter as informações dos usuários atualmente registrados e uma classe de correspondência é usada para enviar essas informações por e-mail para o administrador ou uma pessoa específica.

Execute o seguinte comando para criar a classe mailable para enviar o e-mail. Isso criará um arquivo chamado SendUsersList.php na localização app / Mail.

$ php artisan make: mail SendUsersList

Abra o arquivo e modifique o conteúdo, como no código a seguir.

namespace App \ Mail;
use Illuminate \ Bus \ Queueable;
use Illuminate \ Contracts \ Queue \ ShouldQueue;
use Illuminate \ Mail \ Mailable;
use Illuminate \ Queue \ SerializesModels;
classe SendUsersList estende Mailable

use Queueable, SerializesModels;
/ * Declare uma variável de array * /
public $ userList = array ();
/ **
* Crie uma nova instância de mensagem.
*
* @return void
* /
função pública __construct ($ userList)

/ * Inicializa a variável do array pela variável passada pelo
criação de objeto da classe. * /
$ this-> userList = $ userList;

/ **
* Construa a mensagem.
*
* @return $ this
* /
construção de função pública ()

/ * Exibir o arquivo de visualização com os valores da variável de array * /
return $ this-> view ('RegisteredList') -> with ('userList', $ this-> userList);

Execute o seguinte comando para criar o comando personalizado do Laravel chamado RegisterUsersList, que irá executar a consulta para obter a lista de informações dos usuários cadastrados em cada dia. O comando irá criar um arquivo chamado RegisterUsersList.php na localização app / Comandos.

$ php artisan make: comando RegisterUsersList --command = registrado: usuários

Abra o arquivo e modifique o conteúdo com o seguinte código para enviar a lista de usuários atualmente registrados do sistema atual para um endereço de e-mail específico.

namespace App \ Console \ Commands;
use Illuminate \ Console \ Command;
/ * Importar pacotes necessários * /
use Mail;
use App \ Mail \ SendUsersList;
use DB;
use Carbon \ Carbon;
use App \ Console \ Commands \ DateTime;
class RegisterUsersList extends Command

/ **
* O nome e a assinatura do comando do console.
*
* @var string
* /
/ * Adicionar valor de assinatura * /
protegido $ assinatura = 'registrado: usuários';
/ **
* A descrição do comando do console.
*
* @var string
* /
protegido $ description = 'Lista de usuários registrados';
/ **
* Crie uma nova instância de comando.
*
* @return void
* /
função pública __construct ()

parent :: __ construct ();

/ **
* Execute o comando do console.
*
* @return int
* /
identificador de função pública ()

/ * Leia a data atual do sistema * /
$ today = Carbon :: now () -> toDateString ();
/ * Obter a lista de informações dos usuários que estão registrados
na data atual do sistema * /
$ current_registered_users =
DB :: table ('users') -> whereDate ('created_at', $ today) -> get () -> toArray ();
/ * Cria o objeto da classe mailable com a variável array
que contém a lista de usuários registrados atualmente * /
$ email = novo SendUsersList ($ current_registered_users);
/ * Enviar e-mail usando a classe Mail * /
Mail :: to ('endereço de email do destinatário') -> send ($ email);

Configure a programação para executar o comando

Abra o Núcleo.php arquivo do local app / console e modificar o conteúdo com o seguinte código. Você pode definir diferentes tipos de opções de frequência de programação. Você pode obter a lista neste link. Aqui, a programação horária é usada.

namespace App \ Console;
use Illuminate \ Console \ Scheduling \ Schedule;
use Illuminate \ Foundation \ Console \ Kernel como ConsoleKernel;
classe Kernel estende ConsoleKernel

/ **
* Os comandos Artisan fornecidos pelo seu aplicativo.
*
* @var array
* /
/ * Inicialize a variável $ comandos * /
protegidos $ comandos = [
'App \ Console \ Commands \ RegisterUsersList',
];
/ **
* Defina a programação de comando do aplicativo.
*
* @param \ Illuminate \ Console \ Scheduling \ Schedule $ schedule
* @return void
* /
programação de função protegida (programação $ programação)

/ * Definir a programação de hora em hora * /
$ cronograma-> comando ('registrado: usuários') -> horário ();

/ **
* Registre os comandos para o aplicativo.
*
* @return void
* /
comandos de função protegida ()

$ this-> carregar (__ DIR__.'/ Comandos');
requerem base_path ('routes / console.php ');

Criar vista

Crie o RegisteredList.lâmina.php ver o arquivo com o seguinte código.


@if (contagem ($ userList)> 0)

A lista de usuários cadastrados hoje é fornecida a seguir:


@foreach ($ userList as $ user)
$ usuário-> nome

@endforeach
@senão
Nenhum usuário está registrado hoje ainda.
@fim se

Execute o comando:

Execute os seguintes comandos para limpar o cache.

$ php artisan cache: clear
$ php artisan config: cache

Execute o seguinte comando artesanal no terminal para executar o comando personalizado criado anteriormente e verifique a saída.

$ php artisan registrado: usuários

Verifique o endereço de e-mail do destinatário para descobrir o resultado. A seguinte saída aparecerá se nenhum usuário for criado.

Crie uma nova conta de usuário e verifique o e-mail novamente.

Conclusão

O Laravel Scheduler torna as tarefas repetitivas mais fáceis de executar para o aplicativo. Depois de ler este tutorial, os leitores agora devem ter uma compreensão clara dos conceitos de criação de comandos personalizados e implementação de tarefas automatizadas usando o Laravel Scheduler.

Como reverter a direção de rolagem do Mouse e Touchpads no Windows 10
Mouse e Touchpads não apenas torna a computação mais fácil, mas mais eficiente e menos demorada. Não podemos imaginar uma vida sem esses dispositivos,...
Como alterar o ponteiro do mouse e tamanho do cursor, cor e esquema no Windows 10
O ponteiro do mouse e o cursor no Windows 10 são aspectos muito importantes do sistema operacional. Isso também pode ser dito para outros sistemas ope...
Mecanismos de jogos gratuitos e de código aberto para o desenvolvimento de jogos Linux
Este artigo cobrirá uma lista de mecanismos de jogo gratuitos e de código aberto que podem ser usados ​​para desenvolver jogos 2D e 3D no Linux. Exist...