Rumah > rangka kerja php > Laravel > teks badan

Beberapa masalah biasa dengan tugas berjadual Laravel tidak berjalan

PHPz
Lepaskan: 2023-04-21 10:36:13
asal
1955 orang telah melayarinya

Dengan pembangunan berterusan Internet dan aplikasi moden, ramai pengaturcara telah mula menggunakan Laravel sebagai rangka kerja mereka sendiri. Fungsi tugas berjadual yang disediakan dalam rangka kerja Laravel secara automatik boleh melaksanakan beberapa tugas melalui konfigurasi mudah. Walau bagaimanapun, kadang-kadang kita mendapati bahawa tugas yang dijadualkan ini tidak berjalan seperti yang kita harapkan.

Dalam artikel ini, kami akan membincangkan beberapa masalah biasa tugas berjadual Laravel tidak berjalan dan menyediakan penyelesaian yang sepadan.

  1. Semak konfigurasi tugas berjadual

Mula-mula, kita perlu menyemak sama ada tugas berjadual kita telah dikonfigurasikan dengan betul. Mengkonfigurasi tugas berjadual dalam rangka kerja Laravel adalah sangat mudah. ​​Hanya tentukan kaedah jadual dalam fail app/Console/Kernel.php. Kaedah jadual mengandungi semua tugas yang ingin kita jalankan, seperti berikut:

protected function schedule(Schedule $schedule)
{
    $schedule->command('email:send')->daily();
    $schedule->command('email:send --force')->hourly();
}
Salin selepas log masuk

Perhatikan bahawa e-mel arahan:send di sini mewakili tugas khusus yang ingin kita jalankan. Jika tugas berjadual kami dikonfigurasikan dengan betul, tetapi tugas berjadual masih tidak dapat dijalankan, maka kami boleh mempertimbangkan untuk menyemak aspek berikut:

  1. Semak masa sistem

Tugas berjadual Laravel Bergantung pada masa sistem, jika masa sistem tidak betul, tugas yang dijadualkan mungkin tidak berjalan tepat pada masanya. Oleh itu, kita perlu menyemak sama ada masa sistem adalah betul.

Jika kami menggunakan sistem pengendalian Linux, masukkan arahan berikut dalam terminal untuk melihat masa sistem semasa:

$ date
Salin selepas log masuk

Jika kami menggunakan sistem pengendalian Windows, masukkan arahan berikut dalam gesaan arahan untuk melihat masa sistem semasa: Semak masa sistem semasa:

> time/T
> date/T
Salin selepas log masuk

Jika masa sistem tidak betul, kita perlu menetapkan masa yang betul secara manual.

  1. Semak kebenaran pengguna yang menjalankan tugas yang dijadualkan

Tugas berjadual Laravel dilaksanakan dengan kebenaran pengguna yang sedang log masuk secara lalai. Jika pengguna yang sedang log masuk tidak mempunyai kebenaran yang mencukupi, tugas yang dijadualkan mungkin tidak berjalan dengan betul. Oleh itu, kita perlu menyemak sama ada kebenaran pengguna untuk menjalankan tugas yang dijadualkan adalah mencukupi.

Anda boleh menggunakan arahan berikut untuk melihat pengguna semasa:

$ whoami
Salin selepas log masuk

Jika pengguna semasa tidak mempunyai kebenaran yang mencukupi, kami boleh cuba menggunakan perintah sudo untuk menjalankan tugas berjadual Laravel:

$ sudo php artisan schedule:run
Salin selepas log masuk

Ambil perhatian bahawa kita perlu mempunyai hak pentadbir untuk menggunakan arahan sudo.

  1. Semak sama ada tugasan dikunci

Mekanisme lalai tugasan berjadual Laravel adalah untuk menambah kunci pada tugasan semasa ia dijalankan untuk mengelakkan dijalankan berulang. Jika tugasan semasa belum selesai dijalankan, tugasan baharu tidak boleh dimulakan. Pada masa ini kita perlu menyemak dua situasi berikut:

  • Masa kunci tugas terlalu lama: Jika tugasan kita berjalan terlalu lama, ia mungkin menyebabkan masa kunci tugasan terlalu lama masa kita perlu menyesuaikan masa kunci.
  • Tugas tidak berakhir seperti biasa: Jika tugasan kita ditamatkan secara tidak normal, ia juga akan menyebabkan tugasan dikunci. Pada ketika ini kita boleh mencari masalah dan menyelesaikannya dengan melihat fail log.
  1. Semak sama ada tugas yang dijadualkan didayakan

Akhir sekali, kita perlu menyemak sama ada tugasan yang dijadualkan didayakan. Beberapa tugas yang dijadualkan mungkin didayakan secara manual. Kami perlu menyemak sama ada tugasan tersebut didayakan.

Kami boleh melihat semua tugas berjadual melalui arahan berikut:

$ crontab -l
Salin selepas log masuk

Jika tugas yang dijadualkan tidak dipaparkan dalam senarai, kami perlu menambahkannya secara manual pada senarai tugas yang dijadualkan.

Ringkasan

Dalam rangka kerja Laravel, anda boleh mengautomasikan beberapa tugas dengan mudah dengan menggunakan tugasan yang dijadualkan. Walau bagaimanapun, semasa proses pembangunan sebenar, kami mungkin menghadapi masalah tugas berjadual tidak berjalan. Artikel ini menyediakan beberapa penyelesaian biasa untuk masalah ini untuk membantu kami menggunakan tugas berjadual dengan lebih baik dalam rangka kerja Laravel.

Atas ialah kandungan terperinci Beberapa masalah biasa dengan tugas berjadual Laravel tidak berjalan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan