Инструменты пользователя

Инструменты сайта


services

Услуги

Услуга имеет следующие основные свойства:

  • Название
  • Статус (активна, заблокирована, в обработке и т.п.)
  • Стоимость (может быть бесплатной)
  • Период действия (по окончанию периода услуга может быть продлена или удалена)
  • Категория услуги
  • Данные (settings)

Услуга может иметь дочерние услуги. Это удобно при создании тарифов, включающих в себя несколько услуг, например:

Тариф "Хостинг"
│
├─>Web
│   │
│   ├─>Домен: "domain1.ru"
│   │
│   └─>Домен: "domain2.ru"
│
└─>MySQL
     │
     ├─>БД: "joomla"
     │
     └─>БД: "wordpress"

Обработка услуг

SHM обрабатывает услуги после их создания и при их истечении.

Обработка услуг осуществляется следующим образом:

  1. Обработка осуществляется сверху в низ (просмотр дерева в глубину)
  2. Если для родительской услуги настроено «ждать детей», то обработка родительской услуги будет отложена до обработки ее детей.
  3. Если услуге назначена команда, то команда будет добавлена в очередь и будет установлен статус «Обработка». Команда будет выполнена в строгой очередности. После успешного выполнения команды будет установлен статус: «Активен» или «Блокировка».
  4. Если команда не назначена, то услуге будет назначен статус «Активен» или «Блокировка».
  5. При успешной обработке услуги посылается соответствующее событие родителю

Статусы

Дети наследуют статус своих родителей

Обработка

Услуга находится в статусе «Обработка» в следующих случаях:

  • Услуга только что создана и еще не обработана
  • Дочерние услуги не активны
  • Назначенная команда еще не выполнена

Ожидает платежа

Услуга находится в статусе «Ожидает платежа» в случаях:

  • Услуга новая, но не хватило денег для её оплаты и активации

Активен

Услуга будет переведена в статус «Активен» в случае соблюдения следующих условий:

  • Дочерние услуги в статусе «Активен» (если есть)
  • Услуга оплачена (если платная) и еще не истек её срок действия
  • Команда для услуги успешно выполнена (если команда назначена)

Блокировка

Услуга находится в статусе «Блокировка» в следующих случаях:

  • Дочерние услуги находятся в статусе «Блокировка»
  • Назначенная команда успешно выполнена (если есть)

Данные (settings)

Каждая услуга может хранить в себе различные данные, в формате JSON.

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

services.txt · Последние изменения: 2019/01/04 20:57 — danuk