Blog ⟩ Как я делал костыли

Как я делал костыли

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

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

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

Но как только я выкатил код на сервер, парсер сломался. Просто крупные магазины не пускают к себе с серверов Digital Ocean и ничего не работает. Отказываться от этой функциональности я не хотел, поэтому пришлось придумывать костыль.

У меня дома стоит сервер, на котором запущены всякие домашние штуки, типа медиаколлекции, ботов в телеграме и файлового хранилища. Почему бы не написать воркер, который будет через очередь получать задачи с продакшн-сервера (на Digital Ocean), подгружать всю нужную инфу по ссылке на сайт, а потом отдавать обратно через другую очередь.

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