cari
  • Log masuk
  • Daftar
Penetapan semula kata laluan berjaya

Ikuti proiects vou berminat dengan andi aet terbaru mengenai mereka

Jadual Kandungan
1. Pengenalan: Cabaran tugas berjadual PHP
2. Penyelesaian 1: Gunakan Cronjobs untuk penjadualan tugas
2.1 Cara Cronjobs berfungsi
2.2 Konfigurasikan Cronjob
2.3 Reka bentuk skrip PHP
Rumah pembangunan bahagian belakang tutorial php Penghantaran e-mel berjadual PHP: dilaksanakan menggunakan Cronjobs dan penjadual tugas

Penghantaran e-mel berjadual PHP: dilaksanakan menggunakan Cronjobs dan penjadual tugas

Feb 25, 2026 pm 12:21 PM

Penghantaran e-mel berjadual PHP: dilaksanakan menggunakan Cronjobs dan penjadual tugas

Artikel ini akan menyelidiki cara melaksanakan fungsi penghantaran automatik e-mel pada tarikh atau titik masa tertentu dalam aplikasi PHP. Untuk menangani ketidakcekapan menggunakan gelung tak terhingga secara langsung dalam skrip PHP, kami akan menumpukan pada dua penyelesaian arus perdana dan cekap: penjadualan tugas Cronjobs berasaskan sistem pengendalian, dan menggunakan mekanisme penjadualan tugas yang disediakan oleh rangka kerja PHP moden (seperti Laravel). Melalui contoh kod terperinci dan amalan terbaik, ia membantu pembangun membina sistem e-mel berjadual yang stabil dan boleh dipercayai.

1. Pengenalan: Cabaran tugas berjadual PHP

Dalam pembangunan web, kami sering menghadapi keperluan untuk melaksanakan tugas tertentu pada masa tertentu, seperti menghantar e-mel berjadual, menjana laporan atau pembersihan data. Untuk aplikasi PHP, adalah sangat tidak cekap dan tidak diingini untuk menunggu tarikh atau titik masa tertentu melalui gelung tak terhingga (seperti while(true)) secara langsung dalam kitaran hayat permintaan pengguna. Skrip PHP biasanya direka sebagai proses jangka pendek untuk bertindak balas kepada permintaan HTTP. Gelung yang berjalan lama boleh menyekat sumber pelayan web, menyebabkan permintaan tamat masa, dan mungkin juga menghabiskan memori sistem ekzos, yang menjejaskan prestasi aplikasi dan pengalaman pengguna dengan serius. Oleh itu, untuk mencapai tugas berjadual yang boleh dipercayai, kita perlu bergantung pada mekanisme penjadualan tugas bebas luaran untuk mencetuskan pelaksanaan skrip PHP.

2. Penyelesaian 1: Gunakan Cronjobs untuk penjadualan tugas

Cronjobs ialah alat penjadualan tugas yang dibina dalam sistem pengendalian seperti Unix (seperti Linux) yang membolehkan pengguna melaksanakan skrip atau arahan secara automatik pada selang masa yang telah ditetapkan. Ia adalah kaedah yang paling asas dan digunakan secara meluas untuk melaksanakan tugas berjadual PHP.

2.1 Cara Cronjobs berfungsi

Perkhidmatan Cron terus berjalan di latar belakang dan melaksanakan arahan yang sepadan pada titik masa tertentu mengikut peraturan yang ditakrifkan dalam fail konfigurasinya (crontab). Ini bermakna kita boleh mengkonfigurasi Cronjob untuk menjalankan skrip PHP pada selang masa yang tetap (seperti setiap minit, jam atau hari). Selepas skrip PHP dicetuskan, ia akan menentukan sama ada tarikh semasa memenuhi syarat penghantaran e-mel. Jika ia memenuhi syarat penghantaran e-mel, ia akan melaksanakan logik penghantaran, jika tidak ia akan keluar terus.

2.2 Konfigurasikan Cronjob

Untuk menyediakan Cronjob, anda perlu melaksanakan arahan berikut dalam terminal Linux untuk mengedit fail crontab pengguna semasa:

 crontab -e

Ini akan membuka editor teks di mana anda boleh menambah peraturan penjadualan baharu. Setiap baris mewakili Cronjob bebas. Format asasnya adalah seperti berikut:

 minit jam tarikh bulan minggu minggu arahan
  • Minit(0-59)
  • Jam(0-23)
  • Tarikh(1-31)
  • Bulan(1-12)
  • Hari dalam seminggu (0-7, kedua-duanya 0 dan 7 mewakili Ahad)
  • Perintah (skrip atau program untuk dilaksanakan)

Anda boleh menggunakan aksara khas:

  • *: Memadankan semua nilai yang mungkin.
  • ,: Senaraikan berbilang nilai (contohnya, 1,15 bermaksud No. 1 dan No. 15).
  • -: Tentukan julat (contohnya, 9-17 bermaksud 9 pagi hingga 5 petang).
  • /: Tentukan saiz langkah (contohnya, */5 bermaksud setiap 5 minit).

Contoh: Jalankan skrip PHP setiap minit

Andaikan skrip PHP anda terletak di /opt/email_scheduler.php dan laluan ke penterjemah PHP ialah /usr/bin/php. Anda boleh menambah peraturan Cronjob berikut:

 */1 * * * * /usr/bin/php /opt/email_scheduler.php

Ini bermakna perkhidmatan Cron akan melaksanakan perintah /usr/bin/php /opt/email_scheduler.php setiap minit.

2.3 Reka bentuk skrip PHP

Apabila Cronjob mencetuskan skrip PHP, skrip tidak lagi bergantung pada permintaan HTTP atau data $_POST. Ia harus melakukan semakan tarikh dan logik penghantaran mel secara bebas.

Berikut ialah contoh skrip PHP yang diubah suai untuk menghantar e-mel pada tarikh tertentu:

 <?php // Tetapkan zon waktu untuk memastikan ketepatan pengiraan tarikh dan masa date_default_timezone_set(&#39;Asia/Shanghai&#39;); // Laraskan mengikut zon waktu pelayan atau pengguna sasaran anda // Tentukan tarikh penghantaran sasaran $targetDate = &#39;2021-12-25&#39;; // Contoh: Krismas $currentDate = tarikh(&#39;Ym-d&#39;); // Dapatkan tarikh semasa // Semak sama ada tarikh semasa sepadan dengan tarikh sasaran jika ($currentDate === $targetDate) {
    // Logik penghantaran e-mel // Dalam aplikasi sebenar, penerima e-mel, pengirim, subjek, kandungan dan maklumat lain // biasanya diperoleh daripada pangkalan data, fail konfigurasi atau melalui parameter baris arahan $to = "recipient@example.com";
    $from = "sender@example.com";
    $subject = "Salam cuti: Selamat Hari Krismas!";
    $messageBody = "<html><p>Pengguna yang dihormati,</p><p>Selamat Hari Krismas dan selamat bercuti!</p><p>Yang ikhlas,</p><p>Pasukan anda</p>

Atas ialah kandungan terperinci Penghantaran e-mel berjadual PHP: dilaksanakan menggunakan Cronjobs dan penjadual tugas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

Stock Market GPT

Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat popular

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaksanakan Perakaunan Atribut Eloquent dalam PHP_Laravel penjejakan audit operasi data [Tutorial] Bagaimana untuk melaksanakan Perakaunan Atribut Eloquent dalam PHP_Laravel penjejakan audit operasi data [Tutorial] Apr 14, 2026 am 06:45 AM

Menambah log terus ke $casts atau getFooAttribute Eloquent adalah tidak sah kerana pengakses/mutator hanya dicetuskan apabila atribut model dibaca dan ditulis dan tidak boleh menangkap kemas kini kelompok, SQL asli dan perubahan lain yang memintas model. Audit perlu meliputi semua senario pengubahsuaian data.

Cara selamat mengubah suai nama jadual yang dirujuk oleh kunci asing dalam migrasi Laravel Cara selamat mengubah suai nama jadual yang dirujuk oleh kunci asing dalam migrasi Laravel Apr 17, 2026 pm 01:22 PM

Artikel ini memperkenalkan cara untuk mengemas kini nama jadual sasaran dengan selamat bagi kekangan kunci asing sedia ada (seperti menukar daripada penjual kepada penjual) melalui penghijrahan dalam Laravel, meliputi langkah dan langkah berjaga-jaga utama untuk memadamkan kekangan lama dan membina semula kekangan baharu.

Pengalihan URL NGINX dalam tindakan: penjelasan terperinci dan amalan terbaik Pengalihan URL NGINX dalam tindakan: penjelasan terperinci dan amalan terbaik Apr 22, 2026 am 06:17 AM

Artikel ini bertujuan untuk menyediakan tutorial profesional tentang cara mengkonfigurasi pengalihan URL menggunakan Nginx. Kami akan menumpukan pada penggunaan arahan tulis semula, terutamanya cara mengubah hala laluan akar ke URL dengan parameter pertanyaan, dan menyelidiki perbezaan antara bendera ubah hala (302 ubah hala sementara) dan tetap (301 ubah hala kekal) serta pertimbangannya dalam SEO dan cache penyemak imbas untuk memastikan konfigurasi Nginx adalah cekap dan selaras dengan amalan terbaik.

Butiran kemasukan dan keluar inventori MySQL dan pertanyaan baki (ditapis mengikut tarikh dan gudang) Butiran kemasukan dan keluar inventori MySQL dan pertanyaan baki (ditapis mengikut tarikh dan gudang) Apr 17, 2026 pm 01:34 PM

Artikel ini menerangkan secara terperinci cara menggunakan MySQL CTE dan UNION ALL untuk membina laporan aliran inventori dinamik, meringkaskan pembelian (Pembelian), kuantiti keluar (Pesanan) dan baki masa nyata setiap komoditi mengikut tarikh dan ID gudang yang ditentukan, dan mengeluarkan set hasil berstruktur yang boleh digunakan terus untuk papan pemuka perniagaan.

Bagaimana untuk melaksanakan pemuatan malas imej untuk meningkatkan prestasi halaman yang panjang Bagaimana untuk melaksanakan pemuatan malas imej untuk meningkatkan prestasi halaman yang panjang Apr 22, 2026 am 04:26 AM

Artikel ini memperkenalkan cara menggunakan atribut loading="lazy" HTML asli untuk memuatkan imej atas permintaan dengan mudah dalam port pandangan, dengan ketara mengurangkan penggunaan sumber halaman awal. Ia amat sesuai untuk menatal halaman yang panjang seperti portfolio dan galeri yang mengandungi sejumlah besar imej. Tiada rangka kerja JavaScript diperlukan dan serasi dengan penyemak imbas arus perdana moden.

Bagaimana untuk menyalin fail .PO ke Cyrillic dengan selamat dan mengelakkan pencemaran aksara NUL Bagaimana untuk menyalin fail .PO ke Cyrillic dengan selamat dan mengelakkan pencemaran aksara NUL Apr 17, 2026 pm 12:44 PM

Artikel ini menerangkan secara terperinci punca NUL NUL NUL (null byte) aksara bercelaru semasa memproses fail setempat .po dalam PHP dan menyediakan penyelesaian pembaikan berdasarkan operasi aliran fail yang selamat. Ia menekankan untuk mengelakkan membaca dan menulis terus fail yang sama, dan mengesyorkan menggunakan perpustakaan penghuraian PO profesional dan bukannya penggantian rentetan manual.

Memuatkan model berkaitan dengan betul dalam Laravel: Gunakan dengan() untuk pramuat pengguna dan siaran mereka Memuatkan model berkaitan dengan betul dalam Laravel: Gunakan dengan() untuk pramuat pengguna dan siaran mereka Apr 28, 2026 am 06:10 AM

Dalam Laravel, jika anda perlu mendapatkan pengguna tertentu berdasarkan ID dan pramuat siaran yang berkaitan pada masa yang sama, anda mesti meletakkan with() sebelum findOrFail(); jika tidak, findOrFail() akan segera melaksanakan pertanyaan dan mengembalikan model tunggal, dan seterusnya dengan() dan pertama() akan gagal atau menghasilkan keputusan yang tidak dijangka.

Bagaimana untuk mengeluarkan rentetan 'null' dengan selamat dan bukannya nilai kosong dalam PHP Bagaimana untuk mengeluarkan rentetan 'null' dengan selamat dan bukannya nilai kosong dalam PHP Apr 28, 2026 am 06:39 AM

Dalam PHP 8, apabila nilai pembolehubah adalah nol, gema secara langsung akan mengeluarkan kandungan kosong; artikel ini memperkenalkan pelbagai kaedah yang selamat dan ringkas (seperti pengendali penggabungan nol, singkatan ternary, dll.) untuk menjadikan nilai nol dipaparkan secara eksplisit sebagai rentetan "null".

Artikel berkaitan