Rumah >pembangunan bahagian belakang >tutorial php >Rangka Kerja-Agnostik PHP Cronjobs Mudah dengan Crunz!

Rangka Kerja-Agnostik PHP Cronjobs Mudah dengan Crunz!

William Shakespeare
William Shakespeareasal
2025-02-10 13:54:12162semak imbas

Artikel ini memperkenalkan Crunz, perpustakaan penjadualan pekerjaan PHP yang serba boleh. Diilhamkan oleh penjadual tugas Laravel, Crunz menawarkan fleksibiliti dan kemudahan penggunaan untuk menguruskan pekerjaan cron. Penulis mengalu -alukan sumbangan dan maklum balas.

Framework-Agnostic PHP Cronjobs Made Easy with Crunz!

Pemahaman yang kukuh tentang pekerjaan cron diandaikan. Rujuk kepada panduan yang disediakan jika diperlukan.

Ciri -ciri Utama:

    Rangka Kerja-Agnostik: Berfungsi dengan lancar dengan mana-mana kerangka PHP.
  • Pemasangan mudah: Menggunakan komposer untuk persediaan mudah. ​​
  • Penjadualan Fleksibel: Menyokong pelbagai frekuensi (mis.,
  • , daily()). everyFiveMinutes()
  • Kawalan yang tepat: Menawarkan kaedah seperti
  • , from(), to(), between(), dan when() untuk menguruskan pelaksanaan tugas. skip()
  • Pemprosesan Selari: Melaksanakan tugas serentak untuk kecekapan.
  • mengunci kuat: Menghalang tugas bertindih untuk mengekalkan integriti data.
  • Konfigurasi yang boleh disesuaikan: Menggunakan fail YAML untuk tetapan yang fleksibel.
  • Pembalakan Komprehensif: Output dan kesilapan log, dengan pilihan pemberitahuan e -mel.

Bermula:

Pasang melalui Komposer:

<code class="language-bash">composer require lavary/crunz</code>
A crunz Bagaimana ia berfungsi:

Tentukan pekerjaan cron dalam fail PHP (mis., Dalam direktori

) menggunakan antara muka Crunz, bukannya secara langsung dalam fail

. Satu pekerjaan Cron (berjalan setiap minit) mewakilkan pelaksanaan ke pelari acara Crunz: tasks/ crontab

<code class="language-bash">* * * * * /project/vendor/bin/crunz schedule:run</code>
Menguruskan pelaksanaan tugas berdasarkan jadual yang ditetapkan.

schedule:run

Penciptaan fail tugas:

fail tugas (secara konvensional berakhir dalam

) mengandungi definisi tugas. Crunz mengimbas direktori

secara rekursif. Anda boleh menentukan direktori tugas melalui konfigurasi atau argumen baris arahan. Tasks.php tasks/

Tugas Contoh:

ingat untuk mengembalikan objek
<code class="language-php"><?php // tasks/MyTasks.php

use Crunz\Schedule;

$schedule = new Schedule();
$schedule->run('my_command')
         ->daily()
         ->description('My daily task.');

return $schedule;</code>
.

$schedule

Perintah dan penutupan:

Menerima Perintah atau Penutup PHP:

run()

<code class="language-php">$schedule->run('/usr/bin/my_script.sh', ['--option' => 'value'])
         ->hourly();

$schedule->run(function () { /* code */ })
         ->everyTenMinutes();</code>
Perubahan direktori:

Gunakan untuk menukar direktori kerja sebelum pelaksanaan tugas. in()

Pilihan Penjadualan:

  • unit masa: hourly(), daily(), weekly(), monthly(), quarterly(), yearly().
  • Kaedah dinamik: everyFiveMinutes(), everyTwelveHours(), dan lain -lain
  • Masa tertentu: , , on('14:00 2025-03-15'). at('14:00') dailyAt('14:00')
  • hari minggu:
  • , , dan lain -lain (gunakan dengan kaedah frekuensi lain). mondays() tuesdays()
  • Bidang Individu:
  • Kawalan yang tepat melebihi minit, jam, hari, bulan, dan hari minggu menggunakan array atau senarai yang dipisahkan koma.
  • Ekspresi Cron:
  • . cron('30 12 * * 1')
Task Lifetime:

, , from() Tempoh pelaksanaan tugas kawalan. to() between()

pelaksanaan bersyarat:

dan kaedah membenarkan pelaksanaan tugas bersyarat berdasarkan panggilan balik. when() Konfigurasi skip()

fail (YAML):

A fail (diterbitkan menggunakan ) membolehkan penyesuaian direktori sumber, akhiran fail, pembalakan, dan pemberitahuan e -mel. crunz.yaml crunz publish:config

Paralelisme dan mengunci:

Crunz menjalankan tugas selari dengan menggunakan . menghalang larian bertindih. symfony/Process preventOverlapping()

Pengendalian output dan ralat:

output log dan ralat ke fail (konfigurasikan dalam ) atau hantar melalui e -mel. panggil balik mengendalikan ralat. crunz.yaml onError()

cangkuk pra/post-proses:

dan panggilan balik membenarkan pelaksanaan kod sebelum dan selepas tugas. before() after()

utiliti baris perintah:

menyenaraikan tugas; mencipta kerangka fail tugas. crunz schedule:list crunz make:task

antara muka web:

Pertimbangkan menggunakan (antara muka berasaskan Laravel) untuk penyelesaian pengurusan berasaskan web. lavary/crunz-ui

Kesimpulan:

Menguruskan pekerjaan Cron dalam codebase anda menawarkan kawalan versi dan kerjasama yang lebih mudah. Crunz memudahkan proses ini dengan ketara.

Soalan Lazim (Soalan Lazim):

(FAQ asal sudah ditulis dengan baik dan tidak memerlukan pengubahsuaian yang signifikan untuk penulisan semula ini.)

Atas ialah kandungan terperinci Rangka Kerja-Agnostik PHP Cronjobs Mudah dengan Crunz!. 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