2013-09-13 2 views
2

У меня есть URL-адрес в моем собственном сайте, что я хочу попасть в запланированное время и один раз, URL будет иметь разные параметры, так, например:планирования запроса один раз с помощью PHP

www.mysite.com?user_id=1 ==> execute this once 5 minutes from now 
www.mysite.com?user_id=2 ==> execute this once 10 minutes from now 
www.mysite.com?user_id=3 ==> execute this once 15 minutes from now 
www.mysite.com?user_id=4 ==> execute this once 20 minutes from now 

Как может Я делаю это в php? Я рассматривал возможность использования работы cron, но это, казалось, использовалось для повторных действий, в то время как в этом случае я хотел, чтобы он выполнялся только один раз. Также я подумывал использовать сон, однако спящий режим блокирует текущее выполнение. Любая другая альтернатива?

+0

'Я хотел, чтобы это выполнить только один раз '<- когда вы хотите его выполнить? – invisal

+0

@invisal, как я указал выше, в X минутах от текущего времени – aherlambang

+0

Вы предполагаете, что вы единственный посетитель на этом сайте или другие гости также часто посещают сайт? – whereismydipp

ответ

1

Прежде всего, у вас есть текстовый файл, содержащий ссылку, которую вы хотите обновить с помощью метки времени. Например:

 
1379041200 www.mysite.com?user_id=1 
1379051200 www.mysite.com?user_id=2 
1379101200 www.mysite.com?user_id=3 

Добавить ссылку и временную метку, которую вы хотите выполнить в файл, если хотите добавить дополнительную ссылку. Затем выполните задание con, которое выполняется каждые 5 минут. Задача cron будет проверять, есть ли какая-либо ссылка с меткой времени, меньшая, чем текущая временная метка.

+0

Задание con проверяет, есть ли какая-либо ссылка с меткой времени, меньшая, чем текущая временная метка. =====> Это делается автоматически? Мне не нужно ничего кодировать? – aherlambang

+0

Конечно, вам нужно что-то закодировать. Прежде всего, сделайте свое задание cron для выполнения одного из ваших PHP-кода (каждые 5 минут), которые читают файл. Прочитайте строку за строкой и получите временную метку каждой строки. Сравните его с текущей меткой времени. Затем выполните ссылку. – invisal

+0

Gotcha .. Я думал, что это была встроенная вещь из cronjob, так что, когда у меня есть текстовый файл с меткой времени перед ним, это сравнится с меткой времени, когда задание выполнялось. – aherlambang

0

вы можете добавить параметр времени ожидания и положить спать в начале вас код

www.mysite.com?user_id=1&wait_for=300 

if(isset($_GET['wait_for'])) { 
    sleep($_GET['wait_for']); 
} 

Таким образом, ваш фактический код файла будет выполнен после задержки

Смежные вопросы