Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

secara otomatis menjadwalkan eksekusi skrip php pada waktu tertentu

Anda memiliki 3 pilihan. Rekomendasi saya:Gunakan cron jika Anda bisa, pengguna didorong jika Anda harus, dan daemon sebagai pilihan terakhir.

(1) cron (seperti yang disebutkan dalam komentar)

cron adalah penjadwal untuk sistem linux yang akan menjalankan pekerjaan baris perintah di sistem Anda. Anda masuk ke server Anda melalui ssh, ketik crontab -e , dan tambahkan baris seperti ini:

4 5 * * * php /path/to/my/script.php

Ini akan menjalankan skrip pada pukul 5:04 pagi setiap hari.

<?php
// /path/to/my/script.php

// Do something

Beberapa layanan hosting memungkinkan memasukkan pekerjaan cron dengan GUI. Ada juga layanan cron eksternal, yang akan memanggil URL untuk Anda pada waktu tertentu.

(2) daemon

Ini adalah opsi yang paling canggih dan juga yang paling tidak dapat diandalkan:Anda menjalankan skrip baris perintah yang berisi loop tak terbatas. Skrip kemudian secara berkala memeriksa status dan meresponsnya. Karena kemungkinan akan macet setelah berbulan-bulan berjalan, Anda harus memiliki skrip kedua untuk memulai ulang jika itu terjadi. Ini banyak pekerjaan, tetapi ini adalah pendekatan yang paling fleksibel.

<?php



while (1) {   

  // fetch $last_exec_timestamp from database

  if ($last_exec_timestamp < time() + 86400) {
    // set last_exec_timestamp to now in database

    // do something
  }
  sleep(5);

}

3. didorong oleh pengguna

Jika Anda memiliki jumlah lalu lintas yang layak di situs Anda, Anda cukup memasukkan pekerjaan ini di footer halaman Anda, ketika tidak ada lagi keluaran. Pastikan kode ini cepat, atau pengguna yang tidak beruntung akan menunggunya.

<?php

// fetch $last_exec_timestamp from database

if ($last_exec_timestamp < time() + 86400) {
  // set last_exec_timestamp to now in database
  // do something
}

Ada juga pendekatan "didorong pengguna" yang lebih mewah yang belum saya uji secara pribadi di stack overflow lainnya pertanyaan .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ubah tabel atau setel ulang kenaikan otomatis menggunakan CDbMigration

  2. menggabungkan kueri mysql DAN ATAU di Codeigniter

  3. Pernyataan pilih MySQL dengan alias gagal dengan kolom tidak ditemukan

  4. Melarikan nilai dalam kueri SQL (C# dengan konektor SQL)

  5. Cara mengoptimalkan kueri besar dengan subkueri berulang