Расширяемая система сигнализации Quick-Alarm

Java задняя часть Архитектура WeChat

задний план

В ежедневной системе будильник является неотъемлемой частью.В настоящее время существует много способов будильника, наиболее распространенными из которых являются прямой журнал, будильник WeChat, сигнал тревоги по SMS, сигнал тревоги по электронной почте и т. Д. Когда дело доходит до сигнала тревоги, неизбежно, что некоторые основные настройки должны быть установлены заранее Информация, такая как режим тревоги, частота тревоги, пользователь тревоги, переключатель и т. д.;

Еще одна распространенная проблема заключается в том, что обычно используется один метод сигнализации.Например, независимо от того, какой тип тревоги, все сигналы тревоги поступают по SMS, и тогда вы обнаружите, что мобильный телефон часто находится в состоянии погружения и переполнения. время, он не будет чувствителен к тревожным SMS.

Цель

Итак, мы собираемся разработать общую схему сигнализации.

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

дизайн

В целом тревогу можно разделить на три этапа, а именно:

IMAGE

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

С точки зрения разделения задач это относительно ясно и просто, но содержание каждой части должно быть расширяемым.

  • Выберите будильник:

    • Разработка правил сигнализации
    • Загрузчик правил предупрежденийConfLoader
    • Триггеры для изменения правил предупрежденийConfChangeTrigger
    • Анализатор правил предупреждений
      • ConfParse: Разбирать правила сигнализации текстового формата как бизнес-объекты.
      • AlarmSelector: Выберите конкретный активатор тревоги в соответствии с правилом тревоги и типом тревоги.AlarmExecute
  • Выполните сигнализацию:

    • Выполнение пула потоков (чтобы не повлиять на основной бизнес-процесс)
    • Динамическое расширение AlarmExecute (поддержка пользовательской реализации аварийных сигналов)
    • Фактическая логика аварийного сигнала

Согласно приведенной выше разборке, при запуске приложения есть некоторые вещи, которые необходимо сделать

  1. Выбор ConfLoader
  2. Загрузка правила оповещения
  3. Загрузка AlarmExecute (включая пользовательскую реализацию по умолчанию +)

На следующем рисунке показаны соответствующие шаги разрешения правила тревоги при применении запуска.

应用启动.png

Что касается загрузки активатора сигнализации, то это относительно просто, как показано ниже.

IMAGE

Таким образом, весь рабочий процесс выглядит следующим образом.

alarm-arch.jpg

Разборка задачи

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

  • Наиболее прямым является проектирование привода сигнализацииAlarmExecute
    • Определяет базовый интерфейс
    • Создание пользовательских правил расширения
  • Следующим шагом является разработка правил оповещения.
    • Как загрузить правила тревог?
    • Подробные правила определения правил тревоги
    • Анализ правил тревоги: то есть получить исполнителя тревоги в соответствии с типом тревоги
    • Поддержка динамического обновления правила тревоги
  • Пул потоков сигналов тревоги
    • Поддерживать очередь сигналов тревоги
    • Количество сигналов тревоги и управление частотой
  • Инкапсулировать интерфейс для внешнего использования

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

резюме

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

использовать:

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

Учить:

Помимо уникальных очков знаний, вы можете абстрагировать некоторые общедоступные места, возможно, следующие два пункта

  • Как мы можем поддерживать динамическую масштабируемость функциональности
  • Использование пула потоков

IV. Другое

Связанные сообщения в блоге

  1. Общая схема системы сигнализации QuickAlarm
  2. Проектирование и реализация активатора сигнализации системы охранной сигнализации QuickAlarm
  3. Настройка и загрузка правил тревоги системы сигнализации QuickAlarm
  4. Анализ правил тревоги системы сигнализации QuickAlarm
  5. Частотная статистика и интерфейсная упаковка охранной системы QuickAlarm
  6. Ручные системы сигнализации QuickAlarm

проект

утверждение

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

Сканируйте внимание, делитесь java

QrCode