Rumah >rangka kerja php >Laravel >Cara menggunakan penjadualan tugas dalam aplikasi Laravel

Cara menggunakan penjadualan tugas dalam aplikasi Laravel

PHPz
PHPzasal
2023-04-06 19:02:541546semak imbas

Laravel ialah rangka kerja PHP popular yang menyediakan banyak komponen dan alatan yang tersedia, termasuk penjadualan tugas. Dalam artikel ini, kita akan melihat cara menggunakan penjadualan tugas dalam aplikasi Laravel.

Apakah itu penjadualan tugas?
Penjadualan tugas merujuk kepada teknologi melaksanakan beberapa tugasan tertentu mengikut rancangan. Contohnya, sandarkan pangkalan data anda setiap jam atau hantar laporan setiap hari. Dalam Laravel, penjadualan tugas adalah serupa dengan Tab Cron, tetapi lebih mudah untuk dilaksanakan dan diurus.

Penjadual tugas dalam Laravel menggunakan alatan baris arahan Artisan untuk mengurus penjadualan, termasuk soket CRON dan Powershell.

Mari lihat cara melaksanakan penjadualan tugas dalam Laravel.

Langkah pertama - buat tugasan
Mencipta tugasan ialah langkah pertama untuk melaksanakan penjadualan tugas. Tugasan penjadualan dalam Laravel dibentangkan dalam bentuk kelas. Menukar tugas ke dalam kelas membolehkan pengurusan dan ujian yang lebih baik dengan mentakrifkan logik yang akan dilaksanakan. Mari kita buat contoh tugasan TutorialTask:

<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

class TutorialTask implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        // Your logic to execute every minute.
        \Log::info(&#39;Task executed at &#39;.now());
    }
}

Logik tugas ini sangat mudah, merekodkan satu mesej ke log setiap minit. Sekarang, kami telah mencipta tugasan, tetapi ia tidak akan dilaksanakan secara automatik. Kita perlu menyediakan jadual untuknya.

Langkah 2 - Sediakan jadual dalam konsol
Laravel menyediakan banyak kaedah untuk menambah tugasan pada jadual. Di sini kami menggunakan kaedah schedule untuk menetapkan jadual dalam konsol. Kaedah

$schedule->job(new TutorialTask)->everyMinute();

everyMinute menunjukkan bahawa tugasan ini akan dilaksanakan setiap minit. Anda boleh menggunakan kaedah pratakrif lain seperti setiap jam (hourly), harian (daily), bulanan (monthly) atau mingguan (weekly).

Sebagai alternatif, anda boleh mentakrifkan peraturan frekuensi kami sendiri:

$schedule->job(new TutorialTask)->everyFiveMinutes();

Peraturan ini menentukan bahawa tugasan harus dijalankan setiap lima minit.

Langkah 3 - Mulakan penjadual tugas
Sekarang kita telah menyediakan jadual untuk tugas itu, kita perlu memulakan penjadual tugas. Kita boleh menjalankan penjadual pada pelayan, atau menggunakan penjadual Laravel sendiri, yang dijalankan dengan menyediakan Tab Cron.

Jalankan arahan berikut dalam konsol:

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

Arahan ini akan menjalankan penjadual Laravel setiap minit. Anda perlu menggantikan /path-to-your-project dengan laluan ke aplikasi Laravel anda. >> /dev/null mengarahkan semua output untuk dimajukan ke /dev/null.

Langkah akhir - mulakan baris gilir (jika perlu)
Jika aplikasi anda menggunakan baris gilir, anda perlu mendayakan penjadual baris gilir. Laravel menggunakan pemacu bahagian belakang seperti Redis atau Beanstalkd untuk mengendalikan tugas baris gilir. Anda perlu mengikuti langkah ini untuk mendayakan penjadual baris gilir:

Tentukan .env dalam fail QUEUE_DRIVER:

QUEUE_DRIVER=redis

Sediakan sambungan baris gilir dalam config/queue.php:

'default' => env('QUEUE_DRIVER', 'redis'),

'connections' => [
    .....
     'redis' => [
            'driver' => 'redis',
            'connection' => 'your-default-redis-connection',
            'queue' => env('REDIS_QUEUE', 'default'),
            'retry_after' => 90,
        ],
  .....
]

Ubah suai fail .env untuk menentukan sambungan baris gilir:

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
REDIS_QUEUE=default

Sekarang mulakan penjadual baris gilir:

php artisan queue:work redis --daemon

Arahan ini akan memulakan penjadual baris gilir dan mula melaksanakan tugas.

Kesimpulan:
Ciri penjadualan tugas dalam Laravel membolehkan anda melaksanakan arahan, melaksanakan program atau menghantar e-mel atas permintaan. Dengan mencipta tugas berjadual dan menambahkannya pada senarai tugas, anda boleh mengurus dan melaksanakan tugas dengan mudah. Semasa proses ini, ingat untuk menghidupkan penjadual atau penjadual baris gilir supaya tugasan berjalan pada masa yang dijadualkan atau dalam baris gilir keutamaan. Semoga berjaya menggunakan penjadual tugas Laravel untuk meningkatkan prestasi dan responsif aplikasi anda.

Atas ialah kandungan terperinci Cara menggunakan penjadualan tugas dalam aplikasi Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn