SharedMapGetter#
Действие SharedMapGetter получает сообщение из разделяемого кэша и возвращает его в качестве результата. Работа с хранилищем shared map, построенном на базе Shared Memory в Nginx.
Параметры:
Название |
Обязательность |
Допустимые значения |
Описание |
|---|---|---|---|
operation |
+ |
GET/GET_FIRST/GET_LAST |
Тип операции: GET - получение по ключу; GET__FIRST - получение первого по дате/времени вставки; GET_LAST - получение последнего по дате/времени вставки |
shared_store_key |
+* |
Строка, содержащая выражение из переменных и/или констант |
* Обязательный в случае операции GET параметр, задающий ключ, с которым сообщение будет извлечено из кэша |
shared_store_name |
+ |
Строка, содержащая имя разделяемого хранилища |
Должно указываться имя ранее объявленного хранилища |
Заполняемые переменные:
Название |
Диапазон значений |
Описание |
|---|---|---|
clj_shared_map_error |
MESSAGE_UNKNOWN/DEFAULT_ERROR/EMPTY_QUEUE/ALREADY_EXISTS |
MESSAGE_UNKNOWN - попытка получить сообщение по ключу, который отсутствует в кэше; DEFAULT_ERROR - внутренняя ошибка; EMPTY_QUEUE - очередь/кэш пуст; ALREADY_EXISTS - сообщение с таким ключом уже есть в кэше |
Переменная заполняется только в случае ошибки.
Пример:
system:
storages:
- name: storage_1
services:
service_http_proxy:
- id: 1
chains:
- action: SharedMapGetter
conditions:
- {var: request_method, value: GET, operator: "="}
- {var: arg_type, value: "", operator: "="}
params:
operation: GET
shared_store_key: $arg_ID
shared_store_name: storage_1
- action: SharedMapGetter
conditions:
- {var: request_method, value: GET, operator: "="}
- {var: arg_type, value: "first", operator: "="}
params:
operation: GET_FIRST
shared_store_key: $arg_ID
shared_store_name: storage_1
- action: SharedMapGetter
conditions:
- {var: request_method, value: GET, operator: "="}
- {var: arg_type, value: "last", operator: "="}
params:
operation: GET_LAST
shared_store_key: $arg_ID
shared_store_name: storage_1
В примере, в зависимости от метода запроса и значения параметра type из кэша извлекается либо сообщение по ключу, либо первое по дате вставки, либо последнее.