PushFeed — мониторинг RSS и VK лент


    У многих наверняка есть проблема отслеживания информации. С самого создания PushAll мы сделали интеграцию каналов с RSS лентами, а потом и с лентами ВКонтакте. Несмотря на то, что сейчас есть много различных RSS-ридеров, многие создавали каналы лишь для того, чтобы самому получать оповещения о новых записях в лентах, что идет в разрез с самой идеей создания каналов — рассылкой уведомлений группам людей.

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



    Как работает PushFeed?


    PushFeed это канал-микросервис созданный на платформе PushAll.ru, который позволяет вам ввести ваши ленты, указать им параметры и получать уведомления. Если точнее — канал берет каждую вашу ленту, считает время следующей её проверки и ставит в очередь. Ленты и их параметры хранятся в Redis.

    Вся архитектура PushFeed работает на простом планировщике внутри таблицы MySQL по времени. Скрипт берет из БД записи по времени и создает сообщения в RabbitMQ, которые обрабатывают 50 потоков консюмера. При текущих параметрах можно обрабатывать до 500 запросов в секунду. Также благодаря использованию RabbitMQ можно без проблем подключить дополнительные сервера к обработке.

    Время проверки задано для каждого пользователя. Стандартное время 10 минут. Это время разбивается на ваши выбранные каналы. При этом каждая лента VK обновляется в 5 раз быстрее.



    За 10 минут можно обработать 300 тысяч лент.

    Каждый поток консюмера определяет последнее время проверки и сверяет c ним время последней записи в ленте. Если запись новее — отправляет уведомление. Также для меценатов доступно получение всех записей, созданных между проверками.

    Напомним вам, что PushAll способен отправлять уведомления в браузеры Google Chrome через расширение, в Хромоподобные браузеры и Firefox через WebPush, на Android через приложение, на iOS через приложение, в Safari, в Telegram и даже на электронную почту.

    Подробнее о том, куда мы можем отправлять уведомления.

    Ограничения


    PushFeed обрабатывает до 10 лент смешанного содержания: ленты RSS и ленты групп Вконтакте. Скоро к этому списку добавятся еще и ленты комментариев записей — можно будет добавить например обсуждение где происходит важная дискуссия, растянутая на года. Время обработки 10 минут. (в предыдущем пункте статьи есть табличка) Чем больше активных лент, чем реже они обновляются.

    Также есть режим мецената — он должен быть знаком тем, кто использует AdminVK. Он работает так, что вы переводите пожертвование в размере от 100 и более рублей в месяц и становитесь меценатом. Вы можете разместить свой канал в специальном разделе каталога PushAll, вы можете попасть в специальный блок списка меценатов в разделе пожертвований, а самое главное включить режим мецената в AdminVK и PushFeed. Мы не стали как-то разделять механику, поэтому доп. возможности включаются сразу в обоих микросервисах.

    В режиме мецената все работает в 10 раз быстрее, но не чаще чем раз в 30 секунд. Скоро можно будет добавить до 100 лент, а недавно стало доступно сканирование всех записей, а не только последней (сканирование всех записей доступно для всех пользователей, независимо от того, меценат вы или нет, до конца января 2018 года)

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



    Внутри RSS лент также идет поиск тегов IMG в тексте ленты. При возможности присылайте нам примеры того, куда прячат изображения в лентах RSS.

    Это не RSS-агрегатор


    RSS тут лишь вспомогательный пункт. Сама идея не в читалке RSS-лент, а в том, чтобы выцепить определенные новости и посты в RSS/VK получить их в виде уведомления и отреагировать.

    Необходимость лично у меня в таком сервисе назрела в тот момент, когда я начал пользоваться несколькими сообществами в ВКонтакте. Именно не пабликами, которые постят всякие мемасы и новости, а сообществами. Разница в том, что в сообществах пишут не сами сообщества и не их админы – в сообществах пишут люди.

    Примерами таких сообществ могут быть, как пример, доски объявлений – отслеживание таких сообществ позволяет быстрее всех найти Б/У товар по низкой цене. Также примером может быть тематические сообщества — как пример по программированию vk.com/echo_php — тут пишут именно люди. Примеров таких групп может быть много, например у меня есть несколько сообществ на велосипедную тематику, у некоторых наверняка есть какие то сообщества, где есть небольшие сообщества по типу фриланс-бирж, и скорость реакции там может быть решающей.

    И в разных случаях требуются разные приоритеты и настройки времени, например для фриланс-биржы можно установить TTL в 1 час и высокий приоритет. Если за час не откроешь сообщение — скорее всего заявку уже забрали. Тут также поможет и фильтрация — в ключевых словах можно исключить технологии с которыми вы не работаете, а также добавить те, что вас интересуют.

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


    «Как отвечать на опросы первее всех»

    Также это противовес умной ленты ВКонтакте. Наверняка вы, как и я, начали чаще заходить в сами группы, чем заходить в ленту, где выводятся не все посты. PushFeed позволяет сэкономить время — он проверит эти ленты за вас.

    Мы работаем над качеством работы


    За последние пол года мы исправили много мелких, и не очень мелких проблем в работе PushAll. Стабилизировали отправку уведомлений на устройства, увеличили скорость отправки.

    Мы даже сделали недавно открытую статистику отправки уведомлений по времени



    Подробная статистика скоро будет доступна для владельцев каналов, с дополнительным указанием количества принятых и открытых уведомлений.

    Администрация PushAll поздравляет вас с наступающим новым годом! Желаем вам быстрой доставки оповещений, отсутствие спама, всегда актуальной и полезной информации в новом году!
    PushAll 52,15
    Платформа подписки на Push-уведомления
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 7
    • +1
      Надо будет самому протестить!
      Только в следующем году!)
      • 0
        Интересная штука, с прошлого года хотел попробовать, все руки не доходили…
        • 0
          Интересует техническая сторона. Ленты берёте через vk.api по расписанию, или там где-то есть возможность сделать subscribe на нужные события? Сам вк как-то лимитирует rps, обходите или у вас пока нет такой нагрузки? Или вы просто парсите страницы?
          • +1
            subscribe не используем, у ВК он есть в виде постоянных коннектов, но согласитесь проще проверять 300 тысяч лент за 10 минут по 500 в секунду, чем держать постоянно 300 тысяч соединений? Вк в общем то в рамках токена может позволить проверять сразу все ленты — но все равно будет не то.
            У VK RPS ограничен на токен, то есть для одного пользователя в общем то хватает для его нужд.
            В случае если сталкиваются много запросов и все таки ВК дает ошибку о лимите — сообщение возвращается в очередь и через пару итераций таки долетает
            • +1

              Привет, я автор похожего сервиса. В вк лимит 3rps. Subscribe насколько я помню на теги и тп, вроде нет на новые посты в группе.

              • 0
                На всякий случай проверил как работают лимиты — если выкрутить при текущих 28 активных пользователях и 60 лентах скорость в 500 раз, убрать лимит на раз в 30 секунд, убрать рандомизацию для размешивания проверок и т.д. то получаем что те у кого 2-3 ленты не упирается в лимит, а на моем аккаунте где 7 лент ВК — упирается, но не всегда, все равно успевает за следующие итерации все проверить, при этом мои проверки на том же ключе API на другие ленты не влияют — по ним не одного возврата в очередь, при этом RPS c API был более 8 в секунду.
                Итого в общем то без особых усилий без проблем будет работать при масштабировании в 500 раз — 14 тысяч пользователей и 30000 лент. При таком количестве примерный RPS будет около 8 запросов в секунду.
              • 0
                И ещё есть у вк лимиты на количество запросов в сутки, но оно довольно большое. Сами лимиты не публичные.

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

            Самое читаемое