PHP скрипт на основе времени - PullRequest
1 голос
/ 22 июля 2009

Скажем, я хочу, чтобы php-скрипт запускал функцию itstime () каждый час. Как настроить это для задания cron на сервере?

Или это невозможно, потому что для запуска нужно открыть php-скрипты?

Спасибо.

РЕДАКТИРОВАТЬ: Я хочу записать некоторую информацию в файл журнала и в зависимости от некоторых переменных отправить ее по электронной почте.

Ответы [ 4 ]

1 голос
/ 22 июля 2009

Только присоединяясь к ответу хаоса, так что дайте ему кредит

мрланрат - см. это

1 голос
/ 22 июля 2009

Если у вас нет доступа к cron, но у вас есть доступ к умеренно загруженному веб-серверу, вы можете использовать его для запуска своей функции каждый час. Вот как WordPress обходится без использования cron. Вот как вы можете это сделать:

<?php
$lastrun = get_last_run_time(); // get value from database or filesystem
if( time()-$lastrun > 60*60 ) {
  itstime();
  set_last_run_time(time()); // write value back to database or filesystem
}
// The rest of your page
?>

Конечно, в этом коде довольно серьезное состояние гонки. Решение этой задачи оставлено читателю в качестве упражнения.

1 голос
/ 22 июля 2009

Ну, я определенно рекомендую работу cron для этой цели. Но теоретически вы можете запустить PHP-скрипт itstime(), поспать час и выполнить цикл. Хотя это довольно безумно.

Сценарий будет выглядеть так:

<?php
include('whatever.php');
while(true) {
    itstime();
    sleep(3600);
}
?>

Вероятно, можно запустить его с помощью nohup php mycrazyscript.php &, чтобы отсоединить его от терминала и заставить его продолжать работать, и использовать pkill -f mycrazyscript для его завершения.

Причина, по которой это безумие, заключается в том, что теперь у вас есть спящий PHP-процесс, который бездействует в течение 59 минут из каждого часа, и вы должны убедиться, что он работает и работает в нужное время, оба из которых Крон позаботится о вас.

0 голосов
/ 28 апреля 2012

https://www.setcronjob.com/ и различные другие сайты предоставляют для этого веб-решение. Вы можете настроить его так, чтобы он вызывал php-скрипт с вашим кодом каждый час или что угодно

<?php
  itstime();

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...