170 похожих чатов

Привет ребят! Делаю бота для SEO, он постоянно обходит сайты

и проверяет ссылки на внешние ресурсы. Закинуть сайт на проверку может любой желающий, через бота в телеге. Остановить проверку можно тоже через бота.
Я придумал реализовать это так: человек кидает боту сайт, данные записывается в таблицу sites в БД:
id int
user_id int
site varchar(255)
is_active bool

по идее я в бесконечном цикле я забираю данные из базы для проверки и если is_active == true вызываю метод для проверки сайта в отдельной горутине, для каждого подходящего сайта из списка. Даже если сервис упадет, при перезапуске он сходит к базе, получит все активные проверки сайтов и продолжит работать и слать людям оповещения когда надо, чем реализуется отказоустойчивость.
Сервисы никогда не проектировал, только скрипты писал, поэтому сомневаюсь в решении... Может можно лучше?
Покритикуйте алгоритм или подход? А то мне кажется вроде хорошим, но может глаз замылился...

4 ответов

5 просмотров

Почему бы не создать таблицу active_sites без столбца is_active? Добавляешь записи и удаляешь, когда проверишь

Ссылку очищаешь от мусора, например гет параметров и #?

Denis-Nesterenko Автор вопроса
Арман Торениязов
Почему бы не создать таблицу active_sites без стол...

Можно, наверное. Я подумывал оставлять возможность повторить проверку уже проверенного сайта. Но в интерфейсе телеги тогда будет куча кнопок, что не удобно... Надо и правда удалять, наверное.

Denis-Nesterenko Автор вопроса

Похожие вопросы

Обсуждают сегодня

Комрады, посоветуйте, куда копать? Стал прикручивать кастомизацию тем. В OnShow главной главной формы пытаюсь загрузить из файла настроек и применить тему (на скрине, как долж...
Ed Doc
13
Такс, блин, таки кто-то знает, каким образом работают макросы stdin/stdout/stderr? Я влез в stdio.h, там определения нет, отладил через асмокод - вызывается функция со странны...
The Bird of Hermes
18
OnShow один раз вызывается? или возможен Hide?
Iluha Companets
14
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Всем привет, на линуксе лучше на fasm или nasm учиться писать для начала ?
meszjol
14
Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
🥹сениоры нужна помощь. Столкнулся с интересным. Сайт на 1.4 весь в вирусах. Просканировал почистил вроде. Можно конечно скачать развернуть на опенсервере, но пока пробую на ко...
Alexander Grishin 👽
3
@sand_witch скорее к тебе вопрос, добавил в .cabal webdriver-w3c и вот такая ошибка от nix develop error: Package ‘script-monad-0.0.4’ in /nix/store/7vdxbra0kwbr0ys0kc5...
Fedor
5
Карта сайта