SharedMapRemover#

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

Параметры:

Название

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

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

Описание

operation

+

REMOVE/REMOVE_FIRST/REMOVE_LAST

Тип операции: REMOVE - удаление по ключу; REMOVE_FIRST - удаление первого по дате/времени вставки; REMOVE_LAST - удаление последнего по дате/времени вставки

shared_store_key

+*

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

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

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: DELETE, operator: "="}
         - {var: arg_type, value: "", operator: "="}
        params:
          operation: REMOVE
          shared_store_key:  $arg_ID
          shared_store_name: storage_1
      - action: SharedMapGetter
        conditions:
         - {var: request_method, value: DELETE, operator: "="}
         - {var: arg_type, value: "first", operator: "="}
        params:
          operation: REMOVE_FIRST
          shared_store_key:  $arg_ID
          shared_store_name: storage_1
      - action: SharedMapGetter
        conditions:
         - {var: request_method, value: DELETE, operator: "="}
         - {var: arg_type, value: "last", operator: "="}
        params:
          operation: REMOVE_LAST
          shared_store_key:  $arg_ID
          shared_store_name: storage_1

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