Mysql
 sql >> Baza danych >  >> RDS >> Mysql

automatycznie zaplanować wykonanie skryptu php o określonej godzinie

Masz 3 opcje. Moja rekomendacja:używaj crona, jeśli możesz, kierowanego przez użytkownika, jeśli musisz, i demona w ostateczności.

(1) cron (jak wspomniano w komentarzach)

cron to program planujący dla systemów linux, który uruchomi zadanie wiersza poleceń w twoim systemie. Logujesz się do serwera przez ssh, wpisujesz crontab -e i dodaj taki wiersz:

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

Skrypt byłby uruchamiany codziennie o 5:04 rano.

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

// Do something

Niektóre usługi hostingowe umożliwiają wprowadzanie zadań crona za pomocą GUI. Istnieją również zewnętrzne usługi cron, które wywołają adres URL w określonym czasie.

(2) demon

Jest to najbardziej zaawansowana opcja, a także najmniej niezawodna:uruchamiasz skrypt wiersza poleceń, który zawiera nieskończoną pętlę. Skrypt następnie okresowo sprawdza stan i odpowiada na niego. Ponieważ prawdopodobnie ulegnie awarii po miesiącach działania, musisz mieć drugi skrypt, aby go zrestartować, na wypadek gdyby tak się stało. To dużo pracy, ale jest to najbardziej elastyczne podejście.

<?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. kierowany przez użytkownika

Jeśli masz przyzwoity ruch w swojej witrynie, możesz po prostu umieścić to zadanie w stopce strony, gdy nie ma już żadnych wyników. Upewnij się, że ten kod jest szybki, w przeciwnym razie pechowy użytkownik będzie na niego czekał.

<?php

// fetch $last_exec_timestamp from database

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

Istnieją również bardziej wymyślne podejścia „napędzane przez użytkownika”, których osobiście nie testowałem w kolejnym przepełnieniu stosu pytanie .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UTF-8, PHP i XML Mysql

  2. Jak pobranie ostatniego identyfikatora wstawiania mysql działa z transakcjami? + pytania transakcyjne

  3. aktualizowanie rekordów z przygotowanymi zestawieniami, sprawdzanie, czy aktualizacja zadziałała

  4. Przyznawanie praw do dodatkowej bazy danych MySQL powodującej problemy

  5. Czy mogę zaktualizować właśnie dodany wiersz za pomocą wyzwalaczy MySQL?