Работа с JSON фалами#

Оглавление#

Импорт#

Импорт Очередей#

Для загрузки очередей через JSON выполните следующие шаги:

  1. В интерфейсе BATU перейдите в раздел «Очереди»«Создать»«Импорт из JSON».

  2. Загрузите JSON-файл или вставьте текст в поле.

  3. Убедитесь, что в файле указаны:

    • name (уникальное имя, до 64 символов),

    • maxRunningTasks (число от 1 до 200),

    • остальные поля — опционально.

  4. Сохраните очередь кнопкой «Сохранить».

Пример JSON:

[  
  {  
    "name": "high-priority",  
    "maxRunningTasks": 50,  
    "retryPolicy": {  
      "maxAttempts": 3,  
      "startRetryDuration": "10s"  
    }  
  }  
]  

Типичные ошибки:

  • name не уникален → «Очередь с таким именем уже существует».

  • maxRunningTasks вне диапазона → «Значение должно быть от 1 до 200».

Импорт Задач#

Чтобы импортировать задачи:

  1. В разделе «Задачи» выберите «Новая задача»«Импорт из JSON».

  2. Загрузите JSON-файл. Убедитесь, что:

    • Поле queue содержит имя существующей очереди,

    • httpTarget включает url и method,

    • scheduleTime указан в формате RFC 3339 (например, "2023-10-10T12:00:00Z").

  3. После проверки сохраните задачу.

Пример JSON:

[  
  {  
    "queue": "high-priority",  
    "httpTarget": {  
      "url": "https://api.example.com/task",  
      "method": "POST"  
    }  
  }  
]  

Типичные ошибки:

  • Указана несуществующая очередь → «Очередь „test“ не найдена».

  • Отсутствует url в httpTarget«Поле „url“ обязательно».

Импорт Заданий#

Для загрузки заданий:

  1. В интерфейсе перейдите в «Задания»«Создать задание»«Импорт из JSON».

  2. Проверьте, что в JSON:

    • name уникален,

    • schedule указан в cron-формате с секундами (например, "0/15 * * * * *"),

    • httpTarget содержит url и method.

  3. Исправьте ошибки, если они есть, и сохраните задание.

Пример JSON:

[  
  {  
    "name": "daily-report",  
    "schedule": "0 0 3 * * *",  
    "httpTarget": {  
      "url": "https://api.example.com/report",  
      "method": "GET"  
    }  
  }  
]  

Советы по загрузке#

  1. Экспортируйте текущие шаблоны** перед редактированием:

    • Нажмите «Экспортировать» в карточке объекта → используйте файл как основу для новых шаблонов.

  2. Пустые значения:

    • Используйте null для необязательных полей (например, dependsOn: null).

Экспорт#

Экспорт Очередей#

Чтобы выгрузить очередь в формате JSON:

  1. В разделе «Очереди» выберите нужные очереди из списка с помощью чекбоксов.

  2. Нажмите «Скачать» в правом верхнем углу.

  3. Введите название файла и нажмите «Сохранить».

Пример экспортированного 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
  }
]

Экспорт Задач#

Для экспорта задачи:

  1. В разделе «Задачи» найдите задачу через поиск или фильтры.

  2. Откройте карточку задачи и нажмите «Экспортировать» в верхнем меню.

  3. Файл сохранится как 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
  }
]

Экспорт Заданий#

Чтобы выгрузить задание:

  1. В разделе «Задания» выберите нужные задания из списка с помощью чекбоксов.

  2. Нажмите «Скачать» в правом верхнем углу.

  3. Введите название файла и нажмите «Сохранить».

Пример экспортированного 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
  }
]