Диспатчинг
Диспатчинг позволяет распределять запросы между несколькими гейтами, настроенными на мерчанте.
Блок dispatching задаётся в определении правила и содержит два поля:
list— список алиасов гейтов из настроек мерчанта, между которыми распределяются запросы.method— алгоритм распределения:"queue"или"limit".
{ "list": ["TEST1", "TEST2", "TEST3"], "method": "queue" | "limit"}Настройка правил
Заголовок раздела «Настройка правил»Для работы диспатчинга необходимо создать по одному правилу на каждый гейт из списка. Все правила должны относиться к одному сеттингу, а сам сеттинг должен содержать все задействованные гейты. В каждом правиле указывается уникальный acq_alias, соответствующий конкретному гейту.
Для сеттинга с тремя гейтами (TEST1, TEST2, TEST3) нужно завести три правила:
Правило 1 — TEST1
{ "header": { "mid": "81", "acq_alias": "TEST1" }, "body": { "status": { "sum": { "1#approved#amount": [0, 2000000] } } }, "routing": null, "action": null, "dispatching": { "list": ["TEST1", "TEST2", "TEST3"], "method": "queue" }}Правило 2 — TEST2
{ "header": { "mid": "81", "acq_alias": "TEST2" }, "body": { "status": { "sum": { "1#approved#amount": [0, 2000000] } } }, "routing": null, "action": null, "dispatching": { "list": ["TEST1", "TEST2", "TEST3"], "method": "queue" }}Правило 3 — TEST3
{ "header": { "mid": "81", "acq_alias": "TEST3" }, "body": { "status": { "sum": { "1#approved#amount": [0, 2000000] } } }, "routing": null, "action": null, "dispatching": { "list": ["TEST1", "TEST2", "TEST3"], "method": "queue" }}Метод queue
Заголовок раздела «Метод queue»Итеративно обходит гейты из list по порядку. Первый запрос направляется на TEST1, второй — на TEST2, третий — на TEST3, четвёртый — снова на TEST1 и так далее по кругу.
Метод limit
Заголовок раздела «Метод limit»Каждый запрос направляется на гейт с наименьшим текущим счётчиком. Как только счётчик гейта достигает лимита, этот гейт исключается из выборки и больше не получает запросы.
