Задание XML Fetcher Cron: запускать как часто и сколько выборок? - PullRequest
0 голосов
/ 04 января 2009

У меня есть скрипт PHP на общем веб-хосте, который выбирает из ~ 300 «фидов» 40, которые не были обновлены в последние полчаса, делает запрос cURL и затем доставляет его пользователю.

SELECT * FROM table WHERE latest_scan < NOW() - INTERVAL 30 MINUTE ORDER BY latest_scan ASC LIMIT 0, 40;
// Make cURL request and process it

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

Как часто я должен запускать задание cron и должен ли я ограничивать число выборок за цикл? На сколько?

Ответы [ 2 ]

1 голос
/ 04 января 2009

Было бы неплохо "оценить", как часто каждый канал меняется на самом деле, поэтому, если среднее время на изменение составляет 24 часа, вы просто выбираете каждые 12 часов.

Просто сохраняйте #changes и # try's и выбирайте те, которые вам нужно проверить ... вы можете запускать скрипт каждую минуту и ​​пусть некоторая статистика сделает все остальное!

0 голосов
/ 04 января 2009

На общем хосте вы также можете столкнуться с проблемами во время выполнения скрипта. Например, если ваш скрипт выполняется дольше 30 секунд, сервер может завершить работу. Если это так для вашего хоста, вы можете выполнить несколько тестов / регистрацию того, сколько времени требуется для обработки каждого канала, и учтите это, когда выясните, сколько каналов вы должны обрабатывать одновременно.

Еще одна вещь, которую я должен был сделать, чтобы исправить это, - пометить «последнее сканирование» как обновленное до . Я обработал каждый отдельный запрос, чтобы проблемный фид не продолжал давать сбой и собирался для каждого Крон беги. При желании вы можете обновить запись снова при сбое и указать причину (если известна), по которой произошел сбой.

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