Работа с JSON фалами#
Оглавление#
Импорт#
Импорт Очередей#
Для загрузки очередей через JSON выполните следующие шаги:
В интерфейсе BATU перейдите в раздел «Очереди» → «Создать» → «Импорт из JSON».
Загрузите JSON-файл или вставьте текст в поле.
Убедитесь, что в файле указаны:
name(уникальное имя, до 64 символов),maxRunningTasks(число от 1 до 200),остальные поля — опционально.
Сохраните очередь кнопкой «Сохранить».
Пример JSON:
[
{
"name": "high-priority",
"maxRunningTasks": 50,
"retryPolicy": {
"maxAttempts": 3,
"startRetryDuration": "10s"
}
}
]
Типичные ошибки:
nameне уникален → «Очередь с таким именем уже существует».maxRunningTasksвне диапазона → «Значение должно быть от 1 до 200».
Импорт Задач#
Чтобы импортировать задачи:
В разделе «Задачи» выберите «Новая задача» → «Импорт из JSON».
Загрузите JSON-файл. Убедитесь, что:
Поле
queueсодержит имя существующей очереди,httpTargetвключаетurlиmethod,scheduleTimeуказан в формате RFC 3339 (например,"2023-10-10T12:00:00Z").
После проверки сохраните задачу.
Пример JSON:
[
{
"queue": "high-priority",
"httpTarget": {
"url": "https://api.example.com/task",
"method": "POST"
}
}
]
Типичные ошибки:
Указана несуществующая очередь → «Очередь „test“ не найдена».
Отсутствует
urlвhttpTarget→ «Поле „url“ обязательно».
Импорт Заданий#
Для загрузки заданий:
В интерфейсе перейдите в «Задания» → «Создать задание» → «Импорт из JSON».
Проверьте, что в JSON:
nameуникален,scheduleуказан в cron-формате с секундами (например,"0/15 * * * * *"),httpTargetсодержитurlиmethod.
Исправьте ошибки, если они есть, и сохраните задание.
Пример JSON:
[
{
"name": "daily-report",
"schedule": "0 0 3 * * *",
"httpTarget": {
"url": "https://api.example.com/report",
"method": "GET"
}
}
]
Советы по загрузке#
Экспортируйте текущие шаблоны** перед редактированием:
Нажмите «Экспортировать» в карточке объекта → используйте файл как основу для новых шаблонов.
Пустые значения:
Используйте
nullдля необязательных полей (например,dependsOn: null).
Экспорт#
Экспорт Очередей#
Чтобы выгрузить очередь в формате JSON:
В разделе «Очереди» выберите нужные очереди из списка с помощью чекбоксов.
Нажмите «Скачать» в правом верхнем углу.
Введите название файла и нажмите «Сохранить».
Пример экспортированного JSON:
[
{
"name": "1",
"description": "",
"maxRunningTasks": 2,
"retryPolicy": {
"maxAttempts": 1,
"startRetryDuration": "1s",
"increasePercentage": 0,
"maxRetryDuration": "1s"
},
"label": "345",
"async": false,
"requestTimeout": 60
},
{
"name": "11",
"description": "",
"maxRunningTasks": 1,
"retryPolicy": {
"maxAttempts": 1,
"startRetryDuration": "1s",
"increasePercentage": 0,
"maxRetryDuration": "1s"
},
"label": "123",
"async": false,
"requestTimeout": 60
}
]
Экспорт Задач#
Для экспорта задачи:
В разделе «Задачи» найдите задачу через поиск или фильтры.
Откройте карточку задачи и нажмите «Экспортировать» в верхнем меню.
Файл сохранится как
task_<ID_задачи>.json.
Пример экспортированного JSON:
[
{
"queue": "test123",
"description": "",
"httpTarget": {
"url": "http://example/run/jobs/200",
"method": "POST",
"body": "",
"headers": {}
},
"scheduleTime": null,
"dependsOn": null,
"responseTimeout": null
},
{
"queue": "11",
"description": "",
"httpTarget": {
"url": "http://example/run/tasks/200",
"method": "POST",
"body": "",
"headers": {}
},
"scheduleTime": null,
"dependsOn": "19337",
"responseTimeout": null
}
]
Экспорт Заданий#
Чтобы выгрузить задание:
В разделе «Задания» выберите нужные задания из списка с помощью чекбоксов.
Нажмите «Скачать» в правом верхнем углу.
Введите название файла и нажмите «Сохранить».
Пример экспортированного JSON:
[
{
"name": "291124",
"description": "Не пишите сюда К1/К2",
"schedule": "* * * * *",
"httpTarget": {
"url": "http://example/run/tasks/200",
"method": "POST",
"headers": {
"key2": ""
},
"body": ""
},
"onlyOneInstance": true,
"retryPolicy": {
"maxAttempts": 1,
"startRetryDuration": "1s",
"increasePercentage": 0,
"maxRetryDuration": "1s"
},
"async": true,
"startNoEarlierTime": null,
"startNoLaterTime": null,
"runMissedJob": false,
"timeRunMissedJob": null,
"responseTimeout": null,
"oneTimeLaunch": false
},
{
"name": "477cd146-d47f-4a46-91ee-3a59cd9efef9",
"description": "Не пишите сюда К1/К2",
"schedule": "0/15 * * * * *",
"httpTarget": {
"url": "http://example/run/tasks/200",
"method": "GET",
"headers": {
"k1": "v1",
"key11": "value11"
},
"body": "bodyStr"
},
"onlyOneInstance": false,
"retryPolicy": {
"maxAttempts": 1,
"startRetryDuration": "1s",
"increasePercentage": 0,
"maxRetryDuration": "1s"
},
"async": true,
"startNoEarlierTime": null,
"startNoLaterTime": null,
"runMissedJob": false,
"timeRunMissedJob": null,
"responseTimeout": 60,
"oneTimeLaunch": false
}
]