Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk menggunakan ThinkPHP6 untuk pengurusan penjadualan tugas grafik?

Bagaimana untuk menggunakan ThinkPHP6 untuk pengurusan penjadualan tugas grafik?

王林
王林asal
2023-06-12 11:40:521496semak imbas

Dalam proses menggunakan PHP untuk pembangunan perniagaan, kami selalunya perlu melaksanakan beberapa tugas dengan kerap, seperti menjana laporan dengan kerap, menghantar e-mel dengan kerap, membuat sandaran data dengan kerap, dsb. Pada masa ini, pengurusan penjadualan tugas telah menjadi bahagian yang amat diperlukan dalam diri kita. Memandangkan isu penjadualan tugas dan pengurusan pada permulaan reka bentuk lapisan perniagaan boleh meningkatkan kecekapan pembangunan dan skalabiliti kod kami. Artikel ini bertujuan untuk memperkenalkan cara menggunakan ThinkPHP6 untuk pengurusan penjadualan tugas grafik.

1. Pustaka penjadualan tugas

Sebelum menggunakan ThinkPHP6 untuk pengurusan penjadualan tugas, anda perlu memasang perpustakaan yang sepadan terlebih dahulu. ThinkPHP6 menyediakan perpustakaan yang dipanggil think-schedule (komponen penjadualan masa yang ringan), yang boleh membantu kami menyelesaikan pengurusan penjadualan tugas dengan cepat. Sebelum memasang perpustakaan ini, anda perlu memastikan bahawa Komposer dipasang pada mesin tempatan anda. Jika tidak, sila pasang Komposer terlebih dahulu.

Gunakan arahan berikut untuk memasang think-schedule: composer require topthink/think-schedule

Selepas pemasangan berjaya, anda akan melihat maklumat pergantungan yang berkaitan dalam fail composer.json projek dan dalam vendor Direktori menjana fail berkaitan.

2. Bagaimana untuk mentakrifkan tugasan

Sebelum mula menggunakan ThinkPHP6 untuk pengurusan penjadualan tugas grafik, kita perlu mentakrifkan kelas tugasan yang akan dijadualkan. Kelas tugas mesti mewarisi daripada kelas thinkscheduleTask dan melaksanakan kaedah larian, yang mentakrifkan logik khusus pelaksanaan tugas untuk kami.

Contohnya:

<?php
namespace app    ask;

use thinkscheduleTask;

class Test extends Task
{
    protected function configure()
    {
        // 该任务的配置信息
        $this->setName('test')->setDescription('测试任务');
    }

    protected function execute(    hinkConsole $console)
    {
        // 该任务的执行逻辑
        echo '测试任务执行成功';
    }
}

Dalam contoh ini, kami mentakrifkan kelas tugasan yang dipanggil Ujian. Dalam kaedah konfigurasi kelas, kita boleh menetapkan maklumat tugas yang berkaitan dalam kaedah pelaksanaan, ia adalah logik tugas tertentu. Maksudnya, kita boleh mentakrifkan maklumat asas tugas (seperti nama tugas, penerangan tugas, dll.) dalam kaedah konfigurasi, dan mentakrifkan logik tugasan tertentu (seperti maklumat yang dikeluarkan. selepas tugas berjaya dilaksanakan, dsb.) dalam kaedah laksana.

3. Cara menggunakan kaedah grafik untuk penjadualan tugas

Selepas definisi kelas tugas selesai, kami boleh mempertimbangkan untuk menggunakan ThinkPHP6 untuk penjadualan tugas grafik. ThinkPHP6 menyediakan arahan untuk melaksanakan pengurusan penjadualan tugas: php think schedule:list. Selepas melaksanakan arahan ini, sistem akan mengimbas secara automatik semua kelas tugas yang ditetapkan dan mengeluarkan maklumat asas tugas.

Gunakan arahan php think schedule:list dalam terminal Hasil output adalah seperti berikut:

+---------+-----------+--------------------+---------------+------------------------+
| Command | Signature | Description        | Interval      | Timezone               |
+---------+-----------+--------------------+---------------+------------------------+
| test    | test      | 测试任务           | * * * * *     | Asia/Shanghai          |
+---------+-----------+--------------------+---------------+------------------------+

Daripada hasil output, kita dapat melihat bahawa nama tugas adalah ujian, penerangan tugas. ialah tugasan ujian, dan tugasan Masa penjadualan adalah sekali setiap minit, dan zon waktu ialah Asia/Shanghai.

Apabila kita perlu menambah tugasan baharu, kita boleh menggunakan arahan berikut:

php think schedule:add task name

Contohnya: php think schedule:add Test

Apabila kita perlu memadamkan tugasan, kita boleh menggunakan arahan berikut:

php think schedule:remove task name

Contohnya: php think schedule:remove Test

Apabila Apabila kita perlu mengubah suai maklumat asas tugas, kita boleh mengubah suai maklumat tugas dalam kaedah konfigurasi dalam kelas tugas. Selepas pengubahsuaian selesai, laksanakan arahan berikut:

php think schedule:clear // Kosongkan tugas

php think schedule:list // Imbas semula tugas

Laksanakan dua di atas Selepas melaksanakan arahan, anda boleh melihat maklumat tugas yang diubah suai.

4. Cara melaksanakan penjadualan tugas

Selepas kami menentukan kelas tugas dan menetapkan maklumat tugas, langkah seterusnya ialah cara melaksanakan penjadualan tugas.

  1. Laksanakan arahan berikut dalam terminal untuk mendayakan penjadualan tugas: php think schedule:run
  2. Laksanakan arahan berikut dalam terminal untuk melihat senarai penjadualan tugas: php think schedule: list

Melalui dua arahan di atas, kita boleh menghidupkan penjadualan tugas dan melihat senarai penjadualan tugas Sistem secara automatik akan melaksanakan tugas mengikut masa penjadualan tugas. Semasa proses pelaksanaan, kita boleh menyemak status pelaksanaan setiap tugasan melalui log Laluan log ialah fail schedule.log dalam direktori runtime.

5. Ringkasan

Artikel ini terutamanya memperkenalkan cara menggunakan ThinkPHP6 untuk pengurusan penjadualan tugasan grafik. Mula-mula, pasang pustaka think-schedule melalui komposer, dan tentukan maklumat asas dan logik tugasan khusus tugasan dalam kelas tugasan Kemudian, tambah, padam dan ubah suai tugasan melalui arahan. Selepas menggunakan arahan php think schedule:run untuk mendayakan penjadualan tugas, kita boleh melihat senarai penjadualan tugas melalui php think schedule:list, dan sistem akan melaksanakan tugas secara automatik mengikut masa penjadualan tugas. Akhir sekali, kita boleh melihat status pelaksanaan setiap tugas melalui log.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan ThinkPHP6 untuk pengurusan penjadualan tugas grafik?. 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