Разве это плохо - требовать, чтобы на моем сайте запускался скрипт cron каждую минуту или две? - PullRequest
3 голосов
/ 12 апреля 2011

В основном я разрабатываю систему оповещения на PHP с CodeIgniter. Я хочу, чтобы оповещения были «запланированы», вставляя строку базы данных, а затем периодически отправляя пакеты. Оповещения рассылаются по электронной почте.

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

Что-то мне подсказывает, что часто запускаемый скрипт cron плохо спроектирован, но я не могу придумать другого способа сделать это.

Рекомендации

Ответы [ 3 ]

2 голосов
/ 12 апреля 2011

Асинхронное оповещение. Желательно отделить задачу оповещения от остальной части кода.

Я не вижу проблемы со скриптом cron, я бы спросил, почему вам нужно делать это так часто? Установка порога - хорошая идея, но вам все равно нужно будет проверить в конце дня или в любое время, чтобы убедиться, что он все равно срабатывает.

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

1 голос
/ 12 апреля 2011

Хорошо, в настоящее время это то, что вы делаете

Timed Cron Job
 |
 |-check for any new updates (in database)
       |
       |-Send them

Some Event happens to trigger alert
 |
 |-Store alert to send later in database

Вместо этого просто сделайте это

Some Event happens to trigger alert
 |
 |-Send it

Что-то вызывает вставку вашей БД

Так что вместовставка, просто позвоните по электронной почте.

Я что-то упустил?

0 голосов
/ 12 апреля 2011

Один простой обходной путь - заставить ваш скрипт вставки проверить, было ли в очереди пороговое количество предупреждений с момента последней пакетной отправки.Это не была бы запланированная работа, но это означало бы, что в любое время ожидается не более порогового числа сообщений.

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

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