Mysql
 sql >> база данни >  >> RDS >> Mysql

автоматично планира изпълнението на php скрипт в определено време

Имате 3 възможности. Моята препоръка:Използвайте cron, ако можете, управляван от потребителя, ако трябва, и daemon като последна възможност.

(1) cron (както е споменато в коментарите)

cron е планировчик за Linux системи, който ще изпълнява задание от командния ред на вашата система. Влизате във вашия сървър през ssh, напишете crontab -e и добавете ред като този:

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

Това ще изпълнява скрипта в 5:04 сутринта всеки ден.

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

// Do something

Някои хостинг услуги позволяват въвеждане на cron задачи с GUI. Има и външни cron услуги, които ще извикат URL вместо вас в определени моменти.

(2) демон

Това е най-усъвършенстваната опция и също така най-малко надеждната:Вие изпълнявате скрипт от команден ред, който съдържа безкраен цикъл. След това скриптът периодично проверява състоянието и отговаря на него. Тъй като има вероятност да се срине след месеци на работа, трябва да имате втори скрипт, за да го рестартирате, в случай че се случи. Това е много работа, но е най-гъвкавият подход.

<?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. управляван от потребителя

Ако имате прилично количество трафик на вашия сайт, можете просто да включите тази работа в долния колонтитул на страницата си, когато няма повече изход. Уверете се, че този код е бърз или нещастен потребител ще го чака.

<?php

// fetch $last_exec_timestamp from database

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

Има и по-фантастични подходи на „ръководен от потребителя“, които не съм тествал лично в друго препълване на стека въпрос .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Фатална грешка:Извикване на недефинирана функция mysql_connect_errno() в

  2. Разбиране на SUM(NULL) в MySQL

  3. Комбиниране на SELECT DISTINCT с UNION DISTINCT в MySQL - има ли ефект?

  4. не може да се промени таблицата, таблица 'xxx/#sql-ib265' вече съществува

  5. Как да създам кръгова диаграма, която показва количеството на нещо, регистрирано от всеки човек?