В поисках лучших практик по созданию читателя / агрегатора фидов на Cron - PullRequest
1 голос
/ 13 октября 2009

У меня есть сайт социальной сети, который начинает набирать обороты и имеет расширяющуюся базу пользователей. В настоящее время мы разрешаем пользователям импортировать их блоги, flickr и твиттер. Мы используем библиотеку php simplepie для чтения каналов, а затем проверяем базу данных, чтобы убедиться, что у нас нет дубликатов для каждого найденного элемента канала. Если элемент фида новый, мы сохраняем его в БД. Каждый из них обновляется через свой cron. Итак, у нас есть один для твиттеров, один для flickr и один для блогов.

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

Ответы [ 2 ]

2 голосов
/ 13 октября 2009

Общая идея в порядке, я бы этого не изменил.

Если вы уверены, что задачи cron вызывают проблемы с производительностью, я бы запустил их на отдельном сервере. Наличие «пакетного сервера» для выполнения подобных заданий отдельно от интерфейсного веб-сервера является довольно распространенным решением.

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

1 голос
/ 13 октября 2009

Бен Джеймс дает хорошее замечание, вы должны быть на 100% уверены, что причина в кроне. Я бы не стал получать новый сервер, пока вы не сможете оптимизировать то, что у вас уже есть.

Какой тип медлительности вы испытываете?

  1. Сетевая задержка?
  2. Задержка базы данных?
  3. Общая загрузка страницы менее отзывчива (код переднего конца?)
  4. Все? и т.д.;

Проведите анализ и узнайте, где оптимизировать, когда у вас есть все переменные.

...