Skip to content

Тестовое задание от компании Artec3d - создание мониторинга сайтов

Notifications You must be signed in to change notification settings

Vito300187/test_case_for_Artec3d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание для компании Arteс3d

Написать мониторинг сайтов.

Основное требование - не использовать готовых решений доя мониторинга сайтов.
Git репозиторий приветствуется.
Частичное решение задачи допускается.
На задачу даются одни сутки. Задача выдается в любое удобное для вас время и результат мы ждем на почту через сутки.
Нужно написать мониторинг, он должен следить за указанным ресурсом, и считать корректным ответ 200 В случае кода ответа отличного от корректного отправлять уведомление по смс или по электронной почте.
Плюсом будет возможность настройки.

Уведомления нужно отправлять:

  • первое сообщение отправлять после 3х минут состояния ошибки
  • второе после 10 минут
  • третье после 50
  • затем 100
  • и 500 минут.
  • Позже уведомлять не стоит.
  • При выходе ресурса из некорретного состояния отправить сообщение о том, что ресурс восстановился

Реализация задания выполнена на чистом ruby без фреймворков, с минимальным набором gems в течении 24 часов с момента отправки

Для запуска необходимо:
  • ruby >= 2.0.0
  • склонировать репозиторий
  • запустить консоль в папке проекта
  • установка гема для осуществления запросов и получения статуса сайта gem install httparty
  • установка гема для отправки почты gem install pony (требуется настройка в модуле Send, методе sending_errors_mail)
  • ввести команду ruby main.rb
  • ввести название сайта (строго в указанном формате, пример https://www.artec3d.com/ru)
  • обновление статуса сайта настроено ровно на 1 минуту

Доработки и модернизация приложения

Так как приложение сделано за 24 часа, в дальнейшем можно перенести логику приложения на Rails, подключить базу данных для записи состояний сайтов, реализовать отправку сообщений через ActionMailer и ActionJob, отложенную отправку либо отправку через определенное время можно поручить gem Whenever. Очередь отправки и проверки доступности сайта реализовать через gem sidekiq.Так же при расширении логика приложения, необходимо выносить часть функционала в модульность:

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

About

Тестовое задание от компании Artec3d - создание мониторинга сайтов

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages