SharedMapSetter#

Помещает сообщение в разделяемый кэш. Работа с хранилищем shared map, построенном на базе Shared Memory в Nginx.

Параметры:

Название

Обязательность

Допустимые значения

Описание

operation

+

ADD/REPLACE/INCREMENT

Тип операции: ADD - добавление; REPLACE - замена; INCREMENT - увеличение существующего значения на заданную дельту (только для числовых значений)

shared_store_key

+

Строка, содержащая выражение из переменных и/или констант

Обязательный параметр, задающий ключ, с которым сообщение будет помещено в кэш

shared_store_name

+

Строка, содержащая имя разделяемого хранилища

Должно указываться имя ранее объявленного хранилища

lifetime

-

Текстовое значение с суффиксом: ms - миллисекунды; s - секунды; m - минуты; h - часы; d - дни; w - недели; M - месяцы, 30 дней; y - годы, 365 дней

Время жизни помещаемого в кэш значения, по истечении которого оно будет удалено

Заполняемые переменные:

Название

Диапазон значений

Описание

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: SharedMapSetter
        conditions:
         - {var: request_method, value: PUT, operator: "="}
        params:
          operation: ADD
          shared_store_key:  $arg_ID
          shared_store_name: storage_1
          lifetime: 1h
        message: $clj_request_body
      - action: SharedMapSetter
        conditions:
         - {var: request_method, value: POST, operator: "="}
        params:
          operation: REPLACE
          shared_store_key:  $arg_ID
          shared_store_name: storage_1
          lifetime: 1h
        message: $clj_request_body

В примере, в зависимости от метода запроса, тело запроса помещается в кэш на 1 час, или заменяется, если оно ранее там существовало (по ключу из параметра запроса ID).