...
✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Використання розкладу Cron у Laravel для автоматизації завдань

37

Завдання Cron корисно для автоматизації нашого завдання у визначений час через рівні проміжки часу. Laravel постачається з функцією планування завдань, яка робить графік cron надзвичайно простим. Раніше нам потрібно було додати окремий запис для кожного завдання cron. У Laravel нам просто потрібно додати одну команду, і вона автоматично запускає всі наші завдання cron. Не потрібно додавати окремий запис для кожного завдання. У цій статті ми вивчаємо використання розкладу cron у Laravel, який допомагає нам автоматизувати наші завдання.

Чому нам потрібно запускати Cron?

Є кілька прикладів, які ми можемо згадати, де нам потрібно запустити cron. Можливо, ви працюєте в Інтернет-магазині і хочете надіслати своїм користувачам рекламні пропозиції. Або у вас є веб-сайт для членства, і вам потрібно надіслати електронне повідомлення-нагадування користувачам про період подовження підписки. Це два приклади, де ми можемо використовувати cron. Що ми робимо, це написати програму, яка може виконати це завдання, і встановити для нього cron. Ваш сервер буде шукати час, вказаний для cron, і коли цей час потрапляє, він автоматично запускає програму. Нам не потрібно дивитись на годинник і запускати програму вручну.

Цей процес полегшує наше життя. Ми можемо зосередитись на інших важливих речах і вкласти час у розумну справу.

Розклад Cron у Laravel

Для нашої статті, давайте візьмемо реальний приклад. Скажімо, у нашій базі даних Laravel є купа користувачів. Кожної опівночі нам потрібно надсилати електронний лист усім користувачам із описом нашої нової рекламної пропозиції. Роблячи це, наші користувачі отримують сповіщення про нові пропозиції, і ваші продажі можуть привернути більше уваги.

Ми припускаємо, що ви зберегли всю інформацію про свого користувача в таблиці "користувачі". Ми отримаємо електронні листи користувача з цієї таблиці та надішлемо їм електронне повідомлення. Звичайно, нам потрібно написати код таким чином, щоб він працював кожну опівночі.

Відкрийте app/Console/Kernel.phpфайл у своєму редакторі та додайте до нього модель користувача та фасад пошти.

<?php
 
namespace AppConsole;
 
use IlluminateConsoleSchedulingSchedule;
use IlluminateFoundationConsoleKernel as ConsoleKernel;
use AppUser; // User model
use Mail; // Mail Facade
 
class Kernel extends ConsoleKernel
{
    ....

Kernalклас має метод, scheduleколи нам доводиться писати один або кілька графіків. Оскільки нам потрібно надіслати електронне повідомлення нашим користувачам, ми пишемо код наступним чином.

<?php
 
namespace AppConsole;
 
use IlluminateConsoleSchedulingSchedule;
use IlluminateFoundationConsoleKernel as ConsoleKernel;
use AppUser;
use Mail;
 
class Kernel extends ConsoleKernel
{
    ....
 
    /**
     * Define the application's command schedule.
     *
     * @param  IlluminateConsoleSchedulingSchedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        $schedule->call(function() {
            $arr_users = User::all();
 
            if(count($arr_users) > 0) {
                foreach ($arr_users as $user) {
                    $name = $user->name;
                    $email = $user->email;
                    $data = array("name" => $name, "body" => "This is our new promotional offer");
                    Mail::send('emails.mail', $data, function($message) use ($name, $email) {
                        $message->to($email, $name)
                                ->subject('New Offer Launched');
                        $message->from('[email protected]', 'Artisans Web');
                    });
                }
            }
        })->daily();
 
        // tou can add more schedules here
    }
    ....

У наведеному вище коді ми беремо користувачів із бази даних та надсилаємо їм електронне повідомлення, використовуючи метод send фасаду пошти. Тут нам потрібно створити mail.blade.phpфайли в resources/views/emailsкаталозі.

mail.blade.php

Hi <strong>{{ $name }}</strong>,
 
<p>{{ $body }}</p>

Оскільки наше завдання – надіслати електронний лист опівночі, ми використали daily()метод. Laravel пропонує різні варіанти частоти розкладу, які ви отримаєте на сторінці документації.

Додайте запис Cron на свій сервер

Нарешті, щоб встановити це завдання cron на сервері, слід додати нижче запис cron на свій сервер.

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

Переконайтеся, що ви правильно встановили шлях до свого проекту. Цей Cron щохвилини телефонуватиме до планувальника команд Laravel. Він автоматично виконує розклад: виконайте команду та оцініть заплановані завдання та виконує належні завдання.

Ми сподіваємось, ви, можливо, дізналися про використання розкладу cron у Laravel та автоматизацію своїх завдань. Ми хотіли б почути ваші думки в розділі коментарів нижче.

Пов’язані статті

Джерело запису: artisansweb.net

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі