Микросервис (mservice)

Описание

Дескриптор консольного микросервиса, запускаемый и поддерживаемый в рабочем состоянии.
Запускается одной или сразу несколькими нодами. В случае падения - автоматически перезапускается, но исключает циклический перезапуск (5 раз за 10 секунд). При превышении система принудительно отключает учетную запись.
Выполняется в виде командной строки, которая может содержать макросы для подстановки домена, URL вебсерверов системы на текущем сайте, путь к папке с лог-журналами.
Команда выполняется в рабочем каталоге, куда предварительно и обязательно распаковывается приложенный zip-архив (attachment). Архив может содержать скрипт, приложение или другие файлы. Архив должен быть обязательно.

Ограничения

  • Коллекция недоступна в мастер-домене.

Поля

Структура сущности
{
  "id": uuid,
  "name": str,
  "cmdline": str,
  "cmdparam": str,
  "enabled": bool,
  "attachment": file,
  "opts": {
    "title": str,
    "comment": str,
    "mode": str,
    "site_mode": str,
    "selected_sites": array<str>,
    "restart_mode": str,
    "heartbeat_timeout": str,
    "attachment_info": object
  },
  "ext": {
    "ct": date,
    "lwt": date
  }
}
Table 1. Поля
Спецификация Описание

Поле: id
Режим: inout
Тип: uuid
По умолчанию: generated

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

Поле: name
Режим: in
Тип: str
По умолчанию: required

Название

Поле: cmdline
Режим: in
Тип: str
По умолчанию: required

Исполняемая команда.
Может содержать макросы %WEBSERVERS%, %DOMAIN%, %LOGPATH%

Поле: cmdparam
Режим: in
Тип: str
По умолчанию: required

Параметры, добавляемые к исполняемой команде.
Может содержать макросы %WEBSERVERS%, %DOMAIN%, %LOGPATH%.

Поле: enabled
Режим: in
Тип: boolean
По умолчанию: true

Выключатель активности.

Поле: attachment
Режим: in
Тип: file
По умолчанию: empty

Свойство для загрузки архива с содержимым рабочего каталога. В основном содержит исполняемый скрипт или программу.
Свойство отсутствует в самом объекте, по нему формируется лишь путь к endpoint в REST-API.
Информация о загруженном архиве доступна через opts.attachment_info.

Поле: opts
Режим: in
Тип: object
Составное поле

Поле: opts.title
Режим: in
Тип: str
По умолчанию: empty

Произвольный заголовок

Поле: opts.comment
Режим: in
Тип: str
По умолчанию: empty

Произвольный комментарий

Поле: opts.mode
Режим: in
Тип: str
По умолчанию: active-passive, "Режим работы внутри сайта:

  • active-active. На всех экземплярах роли msvc.

  • active-passive. Ровно на одном экземпляре роли msvc.

Поле: opts.site_mode
Режим: in
Тип: empty
По умолчанию: "

Режим работы между сайтами:

  • all. На всех сайтах, обслуживающих домен.

  • selected. На указанных сайтах, которые обслуживают домен.

  • any. На любом из сайтом, обслуживающих домен.

Поле: opts.selected_sites
Режим: in
Тип: str или 'array<object>'
По умолчанию: "empty

Список сайтов для режима site_mode='selected'.

Поле: opts.restart_mode
Режим: in
Тип: str
По умолчанию: "permanent

Режим перезапуска:

  • permanent. Перезапуск после любого завершения.

  • transient. Перезапуск только при ненулевом коде возврата.

  • temporary. При завершении не перезапускается.

Поле: opts.heartbeat_interval
Режим: in
Тип: int
По умолчанию: 5000, "Интервал рассылки уведомления об активности экземпляра роли msvc (500 - 60000 мс).
Для режима mode='active-passive'.

Поле: opts.attachment_info
Режим: out
Тип: object
По умолчанию: "empty

Информация о загруженном вложении, доступная для чтения. Само вложение загружается через путь /attachment в REST-API.

Поле: ext
Режим: inout
Тип: object
Составное поле

Позволяет расширять состав произвольными ключами и значениями

Поле: ext.ct
Режим: out
Тип: date
По умолчанию: generated

Время создания объекта

Поле: ext.lwt
Режим: out
Тип: date
По умолчанию: generated

Время последней модификации объекта

См. также