laravel

Tutorial di Laravel Scheduler

Tutorial di Laravel Scheduler
Alcune attività devono essere eseguite regolarmente in qualsiasi applicazione e sarebbe più efficiente se le attività potessero essere eseguite automaticamente. Il framework Laravel semplifica questi tipi di attività utilizzando Laravel Scheduler. L'invio di e-mail in blocco relative all'offerta, l'ottimizzazione dei dati, la generazione di report, il mantenimento del backup dell'applicazione e la rimozione degli utenti inattivi sono alcuni esempi comuni delle attività ripetitive che possono essere eseguite con Laravel Scheduler. Laravel può eseguire periodicamente attività specifiche utilizzando un task manager integrato denominato Mais lavoro. Il file di configurazione denominato Corntab è usato da Mais per gestire le attività di pianificazione. Questo tutorial mostra come gestire le attività ripetitive creando Mais i lavori e l'esecuzione della pianificazione delle attività.

Prerequisiti

Prima di iniziare questo tutorial, completare le seguenti attività:

  1. Crea un nuovo progetto Laravel
  2. Configurare la connessione al database
  3. Esegui il comando migrate crea una tabella utente
  4. Imposta la configurazione per l'invio di e-mail (qui viene utilizzato SMTP per l'invio di e-mail.)

Implementa l'autenticazione predefinita

Innanzitutto, implementa il sistema di autenticazione utente predefinito di Laravel per completare l'attività di pianificazione mostrata in questo tutorial. Esegui i seguenti comandi dal terminale per implementare l'autenticazione Laravel predefinita utilizzando Vue.

$ il compositore richiede laravel/ui
$ php craft ui vue -auth

Esegui il seguente comando per compilare il nuovo scaffolding per ottenere il contenuto aggiornato.

$ npm installa && npm esegui dev

Esegui il seguente comando per cancellare la cache del percorso.

$ php percorso artigianale: chiaro

Esegui il seguente comando per avviare il server di sviluppo Laravel e controlla se il sistema di autenticazione utente predefinito funziona.

$ php servizio artigianale

Apri qualsiasi browser ed esegui il seguente URL nel browser. Se la Accedere e Registrati il collegamento viene visualizzato e funziona correttamente, quindi l'implementazione dell'autenticazione predefinita è stata completata correttamente.

http://localhost:8000

Crea una classe inviabile e un comando artigiano

Molti nuovi utenti creeranno account ogni giorno ed eseguiranno molte attività relative agli utenti registrati quando il progetto è online. A volte, l'applicazione deve sapere quanti utenti hanno creato account ogni giorno. Se queste informazioni sono richieste regolarmente, allora è meglio eseguire una particolare query dopo un intervallo regolare. Un comando Laravel viene utilizzato qui per ottenere le informazioni degli utenti attualmente registrati e viene utilizzata una classe inviabile per inviare tali informazioni via e-mail all'amministratore oa una persona specifica.

Esegui il seguente comando per creare la classe mailable per l'invio dell'e-mail. Creerà un file chiamato Invia elenco utenti.php nella posizione app/posta.

$ php artigiano make:mail SendUsersList

Apri il file e modifica il contenuto, come nel codice seguente.

spazio dei nomi App\Mail;
usa Illumina\Bus\Queueable;
usa Illumina\Contracts\Queue\ShouldQueue;
usa Illumina\Mail\Mailable;
usa Illumina\Queue\SerializesModels;
class SendUsersList estende Mailable

usa Queueable, SerializesModels;
/* Dichiara una variabile array */
public $userList= array();
/**
* Crea una nuova istanza di messaggio.
*
* @return void
*/
funzione pubblica __construct($userList)

/* Inizializza la variabile dell'array dalla variabile passata dal
creazione oggetto della classe. */
$this->userList = $userList;

/**
* Costruisci il messaggio.
*
* @return $this
*/
funzione pubblica build()

/* Visualizza il file di visualizzazione con i valori della variabile array */
return $this->view('registeredList')->with('userList',$this->userList);

Esegui il seguente comando per creare il comando Laravel personalizzato denominato RegistratiLista Utenti, che eseguirà la query per ottenere l'elenco delle informazioni degli utenti registrati ogni giorno. Il comando creerà un file chiamato RegistratiLista Utenti.php nella posizione app/comandi.

$ php craft make:comando RegisterUsersList --command=registered:users

Apri il file e modifica il contenuto con il seguente codice per inviare l'elenco degli utenti attualmente registrati del sistema attuale a un determinato indirizzo email.

spazio dei nomi App\Console\Comandi;
usa Illumina\Console\Comando;
/* Importa i pacchetti necessari */
usa la posta;
usa App\Mail\SendUsersList;
utilizzare DB;
usa Carbon\Carbon;
usa App\Console\Commands\DateTime;
class RegisterUsersList estende Command

/**
* Il nome e la firma del comando della console.
*
* @var stringa
*/
/* Aggiungi il valore della firma */
protected $signature = 'registrato:utenti';
/**
* La descrizione del comando della console.
*
* @var stringa
*/
protected $description = 'Elenco degli utenti registrati';
/**
* Crea una nuova istanza di comando.
*
* @return void
*/
funzione pubblica __construct()

genitore::__construct();

/**
* Esegui il comando della console.
*
* @return int
*/
handle di funzione pubblica()

/* Legge la data di sistema corrente */
$today =Carbon::now()->toDateString();
/* Ottieni l'elenco delle informazioni sugli utenti che sono registrati
nella data di sistema corrente */
$current_registered_users =
DB::table('users')->whereDate('created_at', $today)->get()->toArray();
/* Crea l'oggetto della classe mailable con la variabile array
che contiene l'elenco degli utenti attualmente registrati */
$email = new SendUsersList($current_registered_users);
/* Invia email utilizzando la classe Mail */
Mail::to('indirizzo email del destinatario')->send($email);

Imposta la pianificazione per eseguire il comando

Apri il kernel.php file dalla posizione app/console e modifica il contenuto con il seguente codice. È possibile impostare diversi tipi di opzioni di frequenza di pianificazione. Puoi ottenere la lista da questo link. Qui viene utilizzato il programma orario.

spazio dei nomi App\Console;
usa Illumina\Console\Scheduling\Schedule;
usa Illuminate\Foundation\Console\Kernel come ConsoleKernel;
class Kernel estende ConsoleKernel

/**
* I comandi Artisan forniti dalla tua applicazione.
*
* @var array
*/
/* Inizializza la variabile $comandi */
$comandi protetti = [
'App\Console\Commands\RegisterUsersList',
];
/**
* Definire la pianificazione dei comandi dell'applicazione.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
pianificazione della funzione protetta (Schedule $schedule)

/* Imposta la pianificazione oraria */
$schedule->command('registered:users')->hourly();

/**
* Registra i comandi per l'applicazione.
*
* @return void
*/
comandi funzione protetta()

$this->load(__DIR__.'/Comandi');
require base_path('rotte/console.php');

Crea vista

Crea il lista registrata.lama.php visualizza il file con il seguente codice.


@if (count($userList) > 0)

Di seguito l'elenco degli utenti registrati oggi:


@foreach($userList as $user)
$utente->nome

@endforeach
@altro
Nessun utente è ancora registrato oggi.
@finisci se

Esegui il comando:

Esegui i seguenti comandi per cancellare la cache.

$ php craft cache:clear
$ php craft config:cache

Esegui il seguente comando artigiano dal terminale per eseguire il comando personalizzato creato in precedenza e controlla l'output.

$ php artigiano registrato: utenti

Controlla l'indirizzo email del destinatario per scoprire l'output. Il seguente output apparirà se non viene creato alcun utente.

Crea un nuovo account utente e controlla di nuovo l'e-mail.

Conclusione

Il Laravel Scheduler rende le attività ripetitive più facili da eseguire per l'applicazione. Dopo aver letto questo tutorial, i lettori dovrebbero ora avere una chiara comprensione dei concetti di creazione di comandi personalizzati e implementazione di attività automatizzate utilizzando Laravel Scheduler.

I 10 migliori giochi da giocare su Ubuntu
La piattaforma Windows è stata una delle piattaforme dominanti per i giochi a causa dell'enorme percentuale di giochi che si stanno sviluppando oggi p...
I 5 migliori giochi arcade per Linux
Al giorno d'oggi, i computer sono macchine serie utilizzate per i giochi. Se non riesci a ottenere il nuovo punteggio più alto, saprai cosa intendo. I...
Battaglia per Wesnoth 1.13.6 Sviluppo rilasciato
Battaglia per Wesnoth 1.13.6 rilasciato il mese scorso, è la sesta versione di sviluppo nella 1.13.x e offre una serie di miglioramenti, in particolar...