laravel

Laravel Scheduler-zelfstudie

Laravel Scheduler-zelfstudie
Sommige taken moeten regelmatig worden uitgevoerd in elke toepassing, en het zou efficiënter zijn als de taken automatisch zouden kunnen worden uitgevoerd. Het Laravel-framework maakt dit soort taken eenvoudiger door Laravel Scheduler te gebruiken. Het verzenden van bulk-e-mails met betrekking tot aanbiedingen, het optimaliseren van gegevens, het genereren van rapporten, het bewaren van een back-up van de applicatie en het verwijderen van inactieve gebruikers zijn enkele veelvoorkomende voorbeelden van de repetitieve taken die kunnen worden uitgevoerd met de Laravel Scheduler. Laravel kan specifieke taken periodiek uitvoeren met behulp van een ingebouwde taakbeheerder met de naam Maïs baan. Het configuratiebestand met de naam Corntab wordt gebruikt door Maïs om planningstaken te beheren. Deze zelfstudie laat zien hoe u repetitieve taken kunt beheren door het maken van Maïs taken en het uitvoeren van taakplanning.

Vereisten

Voer eerst de volgende taken uit voordat u aan deze zelfstudie begint:

  1. Een nieuw Laravel-project maken
  2. De databaseverbinding instellen
  3. Voer de opdracht migreren uit maak een gebruikerstabel
  4. Stel de configuratie in voor het verzenden van e-mails (SMTP wordt hier gebruikt voor het verzenden van e-mails).)

Standaardverificatie implementeren

Implementeer eerst het standaard gebruikersauthenticatiesysteem van Laravel om de planningstaak te voltooien die in deze zelfstudie wordt getoond. Voer de volgende opdrachten uit vanaf de terminal om de standaard Laravel-authenticatie te implementeren met Vue.

$ componist vereist laravel/ui
$ php artisan ui vue -auth

Voer de volgende opdracht uit om de nieuwe steiger te compileren om de bijgewerkte inhoud te krijgen:.

$ npm install && npm run dev

Voer de volgende opdracht uit om de routecache te wissen:.

$ php artisan route:clear

Voer de volgende opdracht uit om de Laravel-ontwikkelserver te starten en controleer of het standaard gebruikersauthenticatiesysteem werkt:.

$ php artisan serveren

Open een willekeurige browser en voer de volgende URL in de browser uit:. Als de Log in en registreren link verschijnt en correct werkt, dan is de implementatie van de standaardauthenticatie correct voltooid.

http://localhost:8000

Maak een postbare klas en ambachtelijk commando

Veel nieuwe gebruikers zullen dagelijks accounts aanmaken en veel taken uitvoeren die verband houden met geregistreerde gebruikers wanneer het project online is. Soms moet de applicatie weten hoeveel gebruikers elke dag een account hebben aangemaakt. Als deze informatie regelmatig nodig is, is het beter om een ​​bepaalde zoekopdracht na een regelmatig interval uit te voeren. Een Laravel-opdracht wordt hier gebruikt om de informatie van de momenteel geregistreerde gebruikers te krijgen en een mailbare klasse wordt gebruikt om die informatie via e-mail naar de beheerder of een bepaalde persoon te sturen.

Voer de volgende opdracht uit om de mailbare klasse te maken voor het verzenden van de e-mail:. Het zal een bestand maken met de naam Gebruikerslijst verzenden.php op de locatie app/Mail.

$ php artisan make:mail SendUsersList

Open het bestand en wijzig de inhoud, zoals in de volgende code:.

naamruimte App\Mail;
gebruik Illuminate\Bus\Queueable;
gebruik Illuminate\Contracts\Wachtrij\ShouldWachtrij;
gebruik Illuminate\Mail\Mailable;
gebruik Illuminate\Queue\SerializesModels;
klasse SendUsersList breidt Mailable uit

gebruik Queueable, SerializesModels;
/* Declareer een arrayvariabele */
public $userList= array();
/**
* Maak een nieuwe berichtinstantie.
*
* @return ongeldig
*/
openbare functie __construct($userList)

/* Initialiseer de arrayvariabele met de variabele die is doorgegeven door de
object creatie van de klasse. */
$this->userList = $userList;

/**
* Bouw het bericht.
*
* @return $this
*/
publieke functie build()

/* Diaplay het weergavebestand met de waarden van de arrayvariabele */
return $this->view('registeredList')->with('userList',$this->userList);

Voer de volgende opdracht uit om de aangepaste Laravel-opdracht met de naam te maken: Gebruikerslijst registreren, die de query uitvoert om de lijst met geregistreerde gebruikersinformatie elke dag te krijgen. De opdracht maakt een bestand met de naam Gebruikerslijst registreren.php op de locatie app/opdrachten.

$ php artisan make:command RegisterUsersList --command=registered:users

Open het bestand en wijzig de inhoud met de volgende code om de lijst met momenteel geregistreerde gebruikers van het huidige systeem naar een bepaald e-mailadres te sturen.

naamruimte App\Console\Opdrachten;
gebruik Illuminate\Console\Command;
/* Importeer benodigde pakketten */
gebruik Mail;
gebruik App\Mail\SendUsersList;
gebruik DB;
gebruik koolstof\koolstof;
gebruik App\Console\Commands\DateTime;
class RegisterUsersList breidt Command uit

/**
* De naam en handtekening van de consoleopdracht.
*
* @var tekenreeks
*/
/* Ondertekeningswaarde toevoegen */
beschermd $signature = 'geregistreerd:gebruikers';
/**
* De beschrijving van de consoleopdracht.
*
* @var tekenreeks
*/
beschermd $description = 'Lijst van geregistreerde gebruikers';
/**
* Maak een nieuwe opdrachtinstantie.
*
* @return ongeldig
*/
publieke functie __construct()

ouder::__construct();

/**
* Voer het console-commando uit.
*
* @return int
*/
publieke functie handvat()

/* Lees de huidige systeemdatum */
$today =Carbon::now()->toDateString();
/* Krijg de lijst met gebruikersinformatie die zijn geregistreerd
in de huidige systeemdatum */
$current_registered_users =
DB::table('users')->whereDate('created_at', $today)->get()->toArray();
/* Maak het object van de mailable klasse met de array variabele
die de momenteel geregistreerde gebruikerslijst bevat */
$email = nieuwe SendUsersList($current_registered_users);
/* E-mail verzenden met Mail-klasse */
Mail::to('e-mailadres van de ontvanger')->send($email);

Stel het schema in om de opdracht uit te voeren

Open de Kernel.php bestand vanaf de locatie app/console en wijzig de inhoud met de volgende code:. U kunt verschillende soorten planningsfrequentie-opties instellen. Je kunt de lijst krijgen via deze link. Hier wordt het uurschema gebruikt.

naamruimte App\Console;
gebruik Illuminate\Console\Scheduling\Schedule;
gebruik Illuminate\Foundation\Console\Kernel als ConsoleKernel;
class Kernel breidt ConsoleKernel uit

/**
* De Artisan-commando's die door uw applicatie worden geleverd.
*
* @var-array
*/
/* Initialiseer de $commands-variabele */
beveiligde $commando's = [
'App\Console\Commands\RegisterUsersList',
];
/**
* Definieer het commandoschema van de applicatie.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return ongeldig
*/
beschermd functieschema (Schedule $schedule)

/* Stel het schema elk uur in */
$schedule->command('registered:users')->hourly();

/**
* Registreer de opdrachten voor de applicatie the.
*
* @return ongeldig
*/
beschermde functie commando's()

$this->load(__DIR__.'/Opdrachten');
vereisen base_path('routes/console.php');

Weergave maken

Maak de geregistreerdLijst.blad.php bekijk bestand met de volgende code.


@if (count($userList) > 0)

De lijst met gebruikers die vandaag zijn geregistreerd, wordt hieronder weergegeven:


@foreach($userList als $user)
$gebruiker->naam

@endforeach
@anders
Er is nog geen gebruiker geregistreerd vandaag.
@stop als

Voer de opdracht uit:

Voer de volgende opdrachten uit om de cache te wissen:.

$ php artisan cache: wissen
$ php artisan config:cache

Voer de volgende artisan-opdracht uit vanaf de terminal om de eerder gemaakte aangepaste opdracht uit te voeren en de uitvoer te controleren.

$ php artisan geregistreerd:gebruikers

Controleer het e-mailadres van de ontvanger om de uitvoer te achterhalen. De volgende uitvoer zal verschijnen als er geen gebruiker is aangemaakt:.

Maak een nieuw gebruikersaccount aan en controleer de e-mail opnieuw.

Conclusie

De Laravel Scheduler maakt repetitieve taken gemakkelijker uit te voeren voor de applicatie. Na het lezen van deze zelfstudie zouden lezers nu een duidelijk begrip moeten hebben van de concepten van het maken van aangepaste opdrachten en het implementeren van geautomatiseerde taken met behulp van Laravel Scheduler.

Hoe de GameConqueror Cheat Engine in Linux te gebruiken
Het artikel bevat een handleiding over het gebruik van de GameConqueror cheat-engine in Linux. Veel gebruikers die games op Windows spelen, gebruiken ...
Beste gameconsole-emulators voor Linux
Dit artikel bevat een lijst van populaire emulatiesoftware voor gameconsoles die beschikbaar is voor Linux. Emulatie is een softwarecompatibiliteitsla...
Beste Linux-distributies voor gaming in 2021
Het Linux-besturingssysteem heeft een lange weg afgelegd van zijn oorspronkelijke, eenvoudige, servergebaseerde uiterlijk. Dit besturingssysteem is de...