Планировщик (/task_scheduler/)
- Evgeniy
- Dmitri Savolainen
- Ilya Titaev
Планировщик позволяет поставить задачу callback на определенное время в будущем. Система позволяет создать несколько планировщиков, которые можно назвать “очередью задач”.
В каждой очереди задач можно включить или отключить исполнение задачи.
Создается очередь планировщика следующим ресурсом:
POST /client/{client_id}/task_scheduler/
Создать очередь задач
Параметры URL
Название | Тип | Описание |
---|
Название | Тип | Описание |
---|---|---|
|
| Обязательный |
Параметры запроса (JSON)
Название | Тип | Описание |
---|
Название | Тип | Описание |
---|---|---|
|
| Обновить комментарий |
|
| Можно сделать 'on' (включить) , а может сделать 'off' (выключить). |
|
| Имя задачи |
|
| Изменить ограничение на количество одновременных callback |
|
| id интервала Временные интервалы (/interval/) |
Поля ответа
Название | Тип | Описание |
---|
Название | Тип | Описание |
---|---|---|
|
| Заданный комментарий |
|
| Либо выключен 'off', либо включен 'on'. По умолчанию: off |
|
| Заданное имя очереди при создании задачи |
|
| Ограничение на количество одновременных callback |
|
| Дата создания очереди (post) в utc в форматеYYYY-MM-DD HH:MM:SS |
|
| Resource id. |
|
| id интервала Временные интервалы (/interval/) |
Параметры очереди можно обновить:
PUT /client/{client_id}/task_scheduler/{scheduler_id}
Обновить задачу
Параметры URL
Название | Тип | Описание |
---|
Название | Тип | Описание |
---|---|---|
|
| Обязательный |
|
| Обязательный |
Параметры запроса (JSON)
Название | Тип | Описание |
---|
Название | Тип | Описание |
---|---|---|
|
| Обновить комментарий |
|
| Можно сделать 'on' (включить) , а может сделать 'off' (выключить). |
|
| Изменить ограничение на количество одновременных callback |
|
| id интервала Временные интервалы (/interval/) |
Поля ответа
Название | Тип | Описание |
---|
Название | Тип | Описание |
---|---|---|
|
| Заданный комментарий |
|
| Либо выключен 'off', либо включен 'on'. По умолчанию: off |
|
| Заданное имя очереди при создании задачи |
|
| Ограничение на количество одновременных callback |
|
| Дата создания очереди (post) в utc в форматеYYYY-MM-DD HH:MM:SS |
|
| Resource id. |
|
| id интервала Временные интервалы (/interval/) |
Уточнить информацию по очереди:
GET /client/{client_id}/task_scheduler/{scheduler_id}
Получить информацию о очереди
Параметры URL
Название | Тип | Описание |
---|
Название | Тип | Описание |
---|---|---|
|
| Обязательный |
|
| Обязательный |
Поля ответа
Название | Тип | Описание |
---|
Название | Тип | Описание |
---|---|---|
|
| Заданный комментарий |
|
| Либо выключен 'off', либо включен 'on'. По умолчанию: off |
|
| Заданное имя очереди при создании задачи |
|
| Ограничение на количество одновременных callback |
|
| Дата создания (post) очереди в utc в форматеYYYY-MM-DD HH:MM:SS |
|
| Resource id. |
|
| id интервала Временные интервалы (/interval/) |
|
| Количество запланированных задач |
|
| Количество всех задач |
|
| Дата последнего звонка в очереди в utc в форматеYYYY-MM-DD HH:MM:SS |
Добавить задачу (или сразу несколько задачь) в очередь:
Добавить задачи (может быть добавлена одна)
POST /client/{client_id}/task_scheduler/{scheduler_id}/tasks/
Параметры URL
Название | Тип | Описание |
---|
Название | Тип | Описание |
---|---|---|
|
| Обязательный |
|
| Обязательный |
Параметры запроса (JSON)
Название | Тип | Описание |
---|
Название | Тип | Описание |
---|---|---|
|
| Массив задач - обязательный параметр Должен содержать одну задачу или более |
Массив задач JSON:
Name | Type | Description |
---|
Name | Type | Description |
---|---|---|
|
| Имя задачи |
|
| Номер, который будет вызван первым |
|
| Номер, который будет вызван вторым |
|
| Набор необязательных параметров callback + extended_a_numbers, за исключением extended_a_numbers - список дополнительных номеров {“caller_id_name”: "string", |
|
| Id добавочного, за счет которого будет совершаться вызов |
|
| Период времени в секундах, когда задача акутуальна. C момента начала выполнения. |
|
| Максимальное количество попыток callback (попыток соединить “a_number” и “b_number”) . По умолчанию: 1 максимум: 50 |
|
| Пауза перед следующей попыткой соединения (в секундах). Максимальное значение - 864000 |
|
| Максимальное количество попыток вызова первого номера (“a_number”, “extended_a_numbers”) . Если установлено в 0, то используется только счетчик “try_count”. Если после установления соединения с первым номером второй вызвать не удалось, то “try_count_caller“ продолжает уменьшаться с того значения, на котором был после установления соединения c первым номером. По достижении 0 задача больше не пытается повториться независимо от значения “try_count” По умолчанию: 0 максимум: 50. |
|
| Используется, если “try_count_caller“>0: пауза (в секундах) до следующей попытки установить соединение с “a_number”. Максимальное значение - 864000 |
|
| URL, куда уйдет событие перед началом срабатывания задачи |
|
| URL, куда уйдет событие перед повторной попыткой обзвона |
|
| URL, куда уйдет событие в случае успеха задачи (успешное соединение А и Б номеров) |
|
| URL, куда уйдет событие по результату задачи |
|
| Время начала старта задачи по utc в форматеYYYY-MM-DD HH:MM:SS (может быть указано кол-во секунд, через это время будет старт задачи после ее создания) |
|
| Переменные для callback. Максимальный размер значения каждой переменной - 200 символов |
|
| Упорядоченный список |
|
| Упорядоченный список |
|
| Тайм зона для интервала из планировщика конкретного таска. |
Поля ответа
Название | Тип | Описание |
---|
Название | Тип | Описание |
---|---|---|
|
| Одно из 'scheduled', 'executed', 'delayed', 'finished' 'finished' - выполненная задача 'delayed' - отложена после неуспешной попытки соединения на 'executed' - задача была запущена По умолчанию, еще не выполненные со статусом: 'scheduled' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| id очереди |
|
| Либо успех: 'success', либо неуспех: 'failed'. |
|
| uuid звонка, до обвзона это поле пустое, далее, по результату обзвона (status= ‘executed’ ) uuid можно использовать в ресурсе /client/{client_id}/call_history/{call_uuid} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Время создания задачи по utc в форматеYYYY-MM-DD HH:MM:SS |
|
| id задачи |
|
|
|
|
| Тут может быть уточнена причина неуспеха |
|
|
|
|
|
|
|
|
|
|
|
|
Уточнить параметры задачи:
GET /client/{client_id}/task_scheduler/{scheduler_id}/task/{task_id}
Параметры URL
Название | Тип | Описание |
---|
Название | Тип | Описание |
---|---|---|
|
| Обязательный |
|
| Обязательный |
|
| Обязательный |
Поля ответа
Название | Тип | Описание |
---|
Название | Тип | Описание |
---|---|---|
|
| Одно из 'scheduled', 'executed', 'delayed', 'finished', 'delayed_asr', 'delayed_concurrent_task', 'delayed_interval'. 'finished' - выполненная задача 'delayed' - отложена по 'delayed_asr' - отложена по причине большого количества неуспешных вызовов (ASR) 'delayed_concurrent_task' - отложена по причине установленного лимита на очереди 'delayed_interval' - отложена по причине установленного на очереди 'executed' - задача была запущена По умолчанию, еще не выполненные со статусом: 'scheduled' |
|
| Номер, который будет вызван первым |
|
| Номер, который будет вызван вторым |
|
| Набор необязательных параметров callback. На данный момент доступны: extended_a_numbers, caller_id_name и caller_id_number. extended_a_numbers - список дополнительных номеров |
|
| Id добавочного, за счет которого будет совершаться вызов |
|
| Период времени в секундах, когда задача акутуальна. C момента начала выполнения. |
|
| id очереди |
|
| Либо успех: 'success', либо неуспех: 'failed'. |
|
| uuid звонка, до обвзона это поле пустое, далее, по результату обзвона (status= ‘executed’ ) uuid можно использовать в ресурсе /client/{client_id}/call_history/{call_uuid} |
|
| Максимальное количество попыток callback |
|
| Пауза перед следующей попыткой обзвона (в секундах) |
|
| Время начала старта задачи по utc в форматеYYYY-MM-DD HH:MM:SS |
|
| URL, куда уйдет событие перед началом срабатывания задачи |
|
| URL, куда уйдет событие перед повторной попыткой обзвона |
|
| URL, куда уйдет событие по результату задачи. |
|
| URL, куда уйдет событие в случае успеха задачи (успешное соединение А и Б номеров) |
|
| Время создания задачи по utc в форматеYYYY-MM-DD HH:MM:SS |
|
| id задачи |
|
| имя задачи |
|
| Тут может быть уточнена причина неуспеха |
|
| Переменные для callback |
|
| Упорядоченный список |
|
| Упорядоченный список |
|
| Тайм зона для интервала из планировщика конкретного таска. |
По аналогии с ресурсами создания\управлениями можно:
Уточнить список всех очередей:
GET /client/{client_id}/task_scheduler/
Удалить конкретную очередь:
DELETE /client/{client_id}/task_scheduler/{scheduler_id}
Уточнить список задач в очереди:
GET /client/{client_id}/task_scheduler/{scheduler_id}/task/
И удалить конкретную задачу в очереди:
DELETE /client/{client_id}/task_scheduler/{scheduler_id}/task/{task_id}