Сервисные команды
Введение
Сервисные команды предназначены для управления агентом, получения логов, обновления и так далее. Эти команды
- Создаются на основании действий пользователя в административной панели White Server или планировщиком задач White Server
- Имеют ту же структуру, что и запросы от агрегатора к агенту
- Отображаются в административной панели White Server так же, как и задачи от агрегаторов.
Агент отправляет запрос метода GetTask через RPC (удаленный вызов процедур) и получает сервисную задачу в ответ. Подготовив ответ, агент отправляет его через RPC с помощью AnswerTask.
Пример взаимодействия:
- Агрегатор прислал запрос CancelOrder
- Агент заберет массив данных params этого запроса через задачу GetTask
- Агент вернет ответ через задачу AnswerTask
- Из AnswerTask содержимое массива taskResponse уйдет агрегатору в асинхронный ответ, причем тоже в массив данных taskResponse.
RPC
RPC — это удаленный вызов процедур. Для отправки запросов используются общий url для агентов и мониторов — https://{{serverName}}/wsagent/api/v2/agents/rpc
Структура RPC запросов
Структура запросов от агентов и мониторов общая, ответы сервера тоже.
Формат запроса
{
"rpcTaskType":"string",
"params":{
}
}
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
taskType | string | да | Тип задачи. Может быть
|
params | нет | Массив данных полезной нагрузки. Соответствует модели запроса params для агрегатора. |
Успешный ответ:
{
"result": {
}
}
Ответ с ошибкой:
{
"error": {
/// детализация ошибки
}
}
GetTask
GetTask — тип получения задачи.
{
"rpcTaskType":"string",
"params":{
"taskGuid":"guid",
"taskResponse":{
}
}
}
{
"rpcTaskType": "GetTask"
}
{
"result": {
"taskGuid": "guid",
"taskType": "string",
"objectId": 0,
"pluggedSystemId": "string",
"timeout": 0,
"aggregatorId": 0,
"params": {
}
}
}
{
"error": {
"wsError": {
"code": "string",
"text": "string"
}
}
}
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
-taskGuid | guid | да | Уникальный код этой задачи. Используется при получении задачи через очередь |
-taskType | string enum | да | Тип задачи |
-objectId | int | нет | Код ресторана в системе лицензирования:
|
-pluggedSystemId | string | нет | Идентификатор подключаемой системы, например, NetName сервера r_keeper. Берется из поля pluggedSystems:systemName из ответа на модель GetAgentInfo |
-timeout | int | нет | Время ожидания ответа от агента в секундах |
-aggregatorId | int | нет | Код агрегатора в системе лицензирования, который создал задачу |
-params | json object | нет | Массив данных соответствует модели запроса params для агрегатора |
AnswerTask
AnswerTask — тип задачи, возвращающий ответ.
{
"rpcTaskType":"AnswerTask",
"params":{
"taskGuid":"guid",
"taskResponse":{
}
}
}
{
"rpcTaskType": "AnswerTask"
}
{
"result": {
}
}
{
"error": {
"wsError": {
"code": "string",
"text": "string"
}
}
}