Сброс значения поля MySQL без выполнения пользователем - PullRequest
0 голосов
/ 23 мая 2009

Мне нужно сбросить значение поля MySQL автоматически в полночь. Это определенный столбец в определенной строке таблицы. Я знаю, как сделать это в PHP, но я не знаю, как выполнить PHP Script в полночь, когда кто-то не должен делать это самостоятельно. Есть ли у вас жизнеспособные решения?

Edit: -------------------- Желательно без использования Cron Jobs.

Ответы [ 4 ]

7 голосов
/ 23 мая 2009

Если вы работаете в Linux, вы должны использовать cronjob

В большинстве дистрибутивов есть команда crontab, которая планирует задачи для вас и конкретного необходимого вам формата:

0 0 * * * php /path/to/file.php

EDIT: Написал это до того, как отредактировал свой: p Я не уверен, что есть другой способ. У вас есть конкретная причина не использовать cronjob?

Возможно, вам даже не понадобится указывать часть php, если файл php помечен как исполняемый, т.е.

0 0 * * * /path/to/file.php

Просто выполните "chmod + x /path/to/file.php" из командной строки linux

1 голос
/ 24 мая 2009

Есть также веб-сервисы cron. В основном вы настраиваете учетную запись, а затем они посещают URL по вашему выбору через регулярные промежутки времени. На вашем сервере вы создали страницу, которая делает то, что вам нужно, чтобы сделать. Желательно дать ему маловероятное имя, например myjob789273634ahhh8s2nhw8sghusgf874wfu.php. Вы поняли идею. (Помните, что время ожидания PHP-скриптов примерно 30 секунд.)

Вот поиск Google: ** К сожалению, я новичок, поэтому я не могу опубликовать URL, по-видимому. Просто найдите «веб-cron».

Удачи / 0

0 голосов
/ 24 мая 2009

Спрашивать, как надежно отключать сценарий каждую ночь без cron (или запланированной задачи в Windows), все равно, что спрашивать, как создать динамический веб-сайт без серверного языка.

Если ваше приложение полностью полагается на скрипт, работающий ровно в полночь, cron является обязательным требованием. Если у ваших пользователей есть хостинговая компания, которая (тупо) не разрешает cron, им не повезет.

0 голосов
/ 24 мая 2009

Вы можете написать планировщик заданий в своей программе, который запускает задания в стиле cron. Это потребует от пользователя взаимодействия с системой для запуска, но это может быть достаточно хорошим в зависимости от ваших потребностей. Это намного сложнее, чем просто запускать cronjob, и не обеспечивает точного хронометража (поскольку он не будет работать до тех пор, пока пользователь не перейдет на страницу).

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

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