Как планировать задачи в PHP? (Хранение и техника бега) - PullRequest
2 голосов
/ 13 марта 2011

Привет всем, я использую Zend Framework для моего проекта PHP.В основном у меня есть несколько действий, которые я хочу выполнить автоматически.Я буду использовать работу cron, чтобы сделать трюк.Задание cron будет запускать файл сценария php.

До сих пор все кажется нормальным.Теперь я создал таблицу в своей базе данных и сохранил в ней действия, которые мне нужно выполнить.Например, мне нужно сделать следующее:

1 - создать файл примера (5 раз).

2 - загрузить все файлы образца (1 раз).

3-Отправить почту (непрерывно).

Поэтому я сохраню в своей таблице контроллер и действие для (создание файла примера), установлю время его повторения равным 5, а также установлю время его выполнения.То же самое будет сделано для двух других действий.

Теперь файл скрипта запускается каждую минуту.В файле сценария я выберу все записи, которые из таблицы имеют время выполнения, равное текущему времени, а затем запустим их.

Теперь, чтобы все стало ясно, эта система действительно работает, но я думал о лучшемили улучшенные методы планировщика.Хранение запланированных действий в таблице звучит как хорошая идея, но мне было интересно, есть ли лучший подход?!

Ответы [ 2 ]

0 голосов
/ 13 марта 2011

Мой подход состоит в циклическом сценарии, который «очищает» (устанавливает задания как «законченные») таблицу.И есть еще КРОНЫ с разным временем, которые заполняют таблицу.Итак, рабочий процесс выглядит так:

minute: nothing to do
minute: nothing to do
hour: added export feed update
minute: export feed update finished
minute: nothing to do
minute: nothing to do
minute: nothing to do
minute: nothing to do
...
minute: nothing to do
five_hours: added "clear the cache"
minute: clear cache finished
minute: nothing to do
minute: nothing to do
...
0 голосов
/ 13 марта 2011

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

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