Yahoo Pipes – Большие и сложные трубы

Рубрика: Yahoo Pipes

При создании труб, работающих с большим количеством item’ ов, неминуемо возникают следующие ошибки при отладке:

  • Preview Failed Bad Gateway

Данное сообщение означает что пайп не ожет обработать такое количество записей (item’ов). По моим ощущениям, для работоспособности yahoo pipes необходимо, чтобы пайп содержал не больше 140-160 записей (зависит от количества и качества Regex’ов).

Итак, как ограничить число записей в трубе? Правильно, мы будем использовать операторы Tail и Truncate.

Truncate (N) – берем N записей с начала.

Пример: 1,2,3,4,5,6,7,8,9,10,11,..
Результат: 1,2,3,4,5

Tail (N) – взять N записей с конца.

Пример: 1,2,3,4,5,6,7,8,9,10,11.
Результат: 10,11

А как нам поступить чтобы получить произвольный кусок исходного фида? Это легко достигается при помощи комбинаций операторов Truncate и Tail.

Комбинируем Truncate (N) и Tail (N).

Берем записи с 5-й по 7 включительно.

Пример: 1,2,3,4,5,6,7,8,9,10,11.
Результат: 5,6,7

В заключение хочется привести пример в котором необходимо истользавать операторы Truncate и Tail.
Допустим мы пишем трубу для парсинга сайта на wordpress’е.

  1. Получаем список страниц на которых находятся посты из pagenavi (предположим получили 100 страниц).
  2. Обрабатывая каждую страницу на которой анонсы допустим 5 записей мы получим порядка 5*100=500 ссылок на полные записи.
  3. Обработав каждую запись (выдрав неободимый текст и другие элементы) в идеале получим фид состоящий из 500 полных постов.

Но этим словам “в идеале” не суждено сбыться – Yahoo Pipes захлебнется от такого количества информации. Поэтому, после первого пункта необходимо вставить Truncate (25) и мы получин на выходе 25*5=125 постов в фиде. Далее Truncate (50) -> Tail (25) получаем 125 следующих постов и т.д.

Метки: ,
Если Вам интересна эта запись, Вы можете следить за ее обсуждением, подписавшись на RSS 2.0 .

Оставить комментарий или два