иметь скрипт, который делает что-то непрерывно на заднем конце без необходимости браузера - PullRequest
0 голосов
/ 01 августа 2011

Я немного растерялся.Так что, пожалуйста, будьте осторожны со мной.Возьмите любое стандартное веб-приложение, реализованное с помощью mvc, например codeigniter или rails.Сценарии выполняются только тогда, когда браузер отправляет запрос правильно.Поэтому, когда пользователь входит в систему и отправляет запрос, сервер получает его и отправляет ему ответ.

Теперь рассмотрим сценарий, в котором помимо обычного приложения мне также нужно что-то вроде бэкэнд-процесса.Например, скрипт, который проверяет, закрыто ли время проведения торгов, и отправляет письмо участнику торгов, что торги закрыты, и выбирает победителя конкурса.Теперь все эти действия должны выполняться автоматически, как только заканчивается время торгов.

Теперь, если этот скрипт является частью обычного приложения, он должен запускаться клиентом (браузером), но я не хочу, чтобы это произошло.Это должно быть похоже на скрипт бота, который должен запускаться на сервере, проверяя БД на наличие событий и шаблонов, подобных этому.

Как мне поступить так?Также возможно ли это реализовать на обычном общем или выделенном хостинге, где у нас нет доступа к оболочке, а только доступ по ftp.

Ответы [ 2 ]

1 голос
/ 01 августа 2011

Вы должны написать свой скрипт как отдельную программу и либо запустить его в фоновом режиме, либо запустить cron (или какую-либо другую службу планирования; также работает, только если вас интересуют только события, основанные на времени) это для тебя.

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

0 голосов
/ 01 августа 2011

Вам нужна cron работа , ее легко настроить на linux.Это задание cron вызовет версию PHP для командной строки с вашим скриптом или создаст локальный HTTP-запрос с curl или wget.

Если у вас нет доступа, вам нужен внешний сайт, которыйавтоматически генерирует периодические HTTP-запросы.Дешевый - setcronjob .

...