К чему привела попытка находить горящие туры
Погорячившись выложил на пикабу радостную инструкцию "как сэкономить 50.000 при поиске тура". Был местами закритикован. Сервер, который я использовал "только для себя" тут же "немного прилег", под наплывом желающих потестировать пикабушников. Выявилось просто огромное количество недоработок, которые не мешали мне одному, но вводили в ступор тех, кто пробовал этим пользоваться.
По итогу родился следующий монстр, схематоз, который как ни странно работает:
Пункт 1. Бот для настройки
Создан на одной коммерческой платформе, на которой мы когда-то купили безлимит за овердофига денег. И поэтому мне на нем удобнее всего строить ботов, которые имеют какой-либо понятный сценарий, потому что там удобная визуальная настройка.
Писать такое на чистом PHP - или фреймворках - можно, но гораздо дольше.
Далее, чтобы узнать стоимость тура на данный момент по настроенному в П.1. запросу нам нужно загрузить это в "броузер", с поддержкой Javascript, т.к. все агрегаторы - выдают результаты поиска только после обработки JS на стороне клиента. Плюс любая серверная версия не смогла бы сделать 20.000 запросов для 20.000 пользователей желающих отследить цену на тур в их город каждые 10-15 минут. С учетом того, что каждый поиск занимает минимум 30 секунд! А если это делает сам пользователь? Мысль! Этакий бот-нет поиска)
Поэтому мы пришли к
Пункт 2. Андроид-приложение, для загрузки результатов поиска тура на сервер, на котором будет происходить обработки и отслеживание динамики цен
Потом, получив текущие цены по условиям запроса: отследить динамику - можно и миллиону пользователей, получив от них данные в удобном формате. Поэтому было заказано у стороннего разработчика простое андроид приложение - которое для каждого пользователя спрашивает у сервера "какой поиск ему нужен" - и загружает его в себя, как будто "оно самый простой пользователь", загрузив же - отправляет результат на сервер. Работает в фоне, скачивает каждые Х минут. Минимально нагружает телефон/планшет.
Сразу скажу! Без приложения шансы отследить ваш тур "вовремя" - минимальны. Ресурсы моего сервака, и домашних устройств не безграничны.
Возникшие проблемы, и метод их решения.
Казалось бы зачем всё это делать? Ведь пользователь может и так раз в 15 минут во вкладке своего броузера обновлять свой поиск - и принимать решение?
Но во первых: - нужно отслеживать динамику, чтобы понимать когда цена реально упала, помнить какая она была в прошлый раз, минимум, максимум. И сделать это в ограниченное по времени окно. Во вторых хорошо бы, если бы автоматика сама делала это и только сообщала бы о том, что "пора паковать чемоданы".
Тут и возникли следующие две проблемы:
На платформе, на которой был создан бот для настройки - есть правило: бот сам не может писать "время от времени". Он должен только отвечать, на запрос пользователя. К слову такую возможность (проверить вручную) мы оставили, но это не решало основную задачу: "уведомления здесь и сейчас"
2. Также получилось и с приложением... потратив ХХ на разработку - мы забыли добавить в ТЗ - возможность "пуша" полученной информации, и поэтому в самом приложении - тоже - ничего не "дрогает", когда реальный поиск найден, хотя зайдя в него всегда можно узнать текущие цены и "горит тур или нет". И то: "обратную связь от сервера" мы добавили в ТЗ уже во время разработки.
В связи с этим создалось следующее решение
Пункт 3. Группа/канал для уведомлений
Была создана группа, куда специальный бот, который "дружит" с нашим сервером кидает инфу, о том, когда у какого-либо пользователя "горит самолет". Таким образом - в целом достаточно и 3-4-5 пользователей на один город со схожими вкусами, чтобы моментально получить информацию и найти себе отель по вкусу, когда самолет начинает "продаваться со скидкой".
58 тысяч за отдых с ребенком - это подарок.
Если есть идеи "как упростить схему", оставив ее работоспособной - велкам. Буду рад комментариям. То, что это работает - я убедился за последнюю неделю, спасибо всем неравнодушным, что терпели и давали обратную связь.
Сервер - потихоньку скачивает поиски добавленные пользователями без использования приложения, но когда количество скачанных "сервером" становится сильно больше "количества скачанных пользователем" - такой поиск отключается, чтобы не создавать нагрузку. Перефразируя: поиграться/посмотреть динамику на нужные туры - можно, но не долго.
Таким образом можно искать тур в конкретный отель, и даже на конкретные даты, но это пока только через ЛС - с создателем. Также я лично старался извещать тех, кто ставил поиск, чтобы они не пропустили снижение. Но хотелось бы, чтобы механизм использовали только для реальных поисков.
П.С, сейчас нет никаких планов на "подписку" на этот сервис. Также я не хочу и не буду бронировать туры незнакомым людям. Имею статус турагента, и даже меня наверное уже занесли в реестр, но не хочу. Это не основное направление деятельности, и стрёмно как-то.