Как запустить PHP-файл в определенное время?

Итак, я работаю над чувствительным ко времени сайтом на PHP на моем сервере CentOS. У меня есть случайное время, выбранное в будущем, в течение 24 часов с момента настоящего. На этом этапе мне нужно выполнить PHP-файл, выбрать новую дату и открыть тот же файл. Как это возможно сделать? Я кратко посмотрел на cronjobs, но я не мог найти способ открыть их в определенное, случайное время.

1

Решение

Ты можешь использовать в команда, запустите ваш файл PHP и, в конце концов, зарегистрируйтесь еще раз в в следующий раз. Что-то вроде этого

<?php
// your PHP code in here, and then find out when is the next call time
$time = date('H:i', intval($time)); // or another good way to make sure time value is safe to use as a shell argument, like using escapeshellarg()
$run_me = "/usr/bin/env php " . __FILE__;
exec("echo '$run_me' | at '$time'");
0

Другие решения

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

$time_to_run = intval(file_get_contents('my.timestamp'));
if(time() >= $time_to_run) {
do stuff
file_put_contents(time() + random value, 'my.timestamp');
}

Если вам нужно больше детализации, лучшим вариантом будет запустить его как демон (см. Советы Вот) и просто цикл навсегда (возможно, с некоторыми sleep() внутри) пока не придет время.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector