Массовое создание Задач#

Назначение#

Создание множества задач за одну операцию путем загрузки JSON-файла с полными конфигурациями задач. Каждая задача описывается целиком в файле.

Требования к JSON-файлу#

  1. Формат:

    • JSON-массив, где каждый элемент — объект с полным описанием задачи.

    • Максимальный размер файла: 10 МБ.

    • Максимальное количество задач: 1000.

  2. Структура задачи:
    Должна повторять структуру сущности Задачи, включая все обязательные поля.

Пример корректного JSON-файла#

[
  {
    "externalId": "task_123",
    "description": "Проверка баланса",
    "httpTarget": {
      "url": "https://api.example.com/balance",
      "method": "GET",
      "headers": {
        "Authorization": "Bearer token_abc",
        "Content-Type": "application/json"
      }
    },
    "scheduleTime": "2024-12-13T08:29:00.000Z",
    "responseTimeout": 30
  },
  {
    "externalId": "task_456",
    "description": "Создание платежа",
    "httpTarget": {
      "url": "https://api.example.com/payments",
      "method": "POST",
      "headers": {
        "Authorization": "Bearer token_xyz",
        "Content-Type": "application/json"
      },
      "body": "{ \"amount\": 100, \"currency\": \"RUB\" }"
    },
    "scheduleTime": "2024-12-13T09:00:00.000Z",
    "responseTimeout": 60
  }
]

Процесс загрузки#

  1. Подготовка файла:

    • Убедитесь, что все задачи имеют уникальные externalId, если требуется.

    • Проверьте валидность JSON.

    • Проверьте что заполнены все обязательные параметры.

  2. Загрузка в систему:

    • В интерфейсе Batch UI перейдите в раздел Очереди.

    • Нажмите «Массовое создание задач»«Загрузить JSON».

    • Выберите файл и подтвердите загрузку.

  3. Результат:

    • Система вернет отчет в формате:

      {
        "created": 15,
        "errors": [
          {
            "taskIndex": 2,
            "message": "Недопустимый метод: PACH. Допустимые методы: GET, POST, PUT, DELETE, PATCH"
          }
        ]
      }
      

Обязательные поля#

Для успешного создания задачи укажите:

Поле

Тип

Пример

queue

string

«queue789»

httpTarget.url

string

«https://api.example.com/endpoint»

httpTarget.method

string

«GET»

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

Ошибка

Причина

Решение

"externalId must be unique"

Дублирующийся externalId в файле

Исправьте идентификаторы

"Invalid date format for scheduleTime"

Несоответствие формату ISO 8601

Используйте yyyy-MM-ddTHH:mm:ssZ

"Unsupported HTTP method: PACH"

Опечатка в методе (например, PACH вместо PATCH)

Проверьте названия методов

"Missing required field: httpTarget.url"

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

Добавьте поле в конфигурацию

Рекомендации#

  1. Валидация данных:

    • Используйте автоматическую проверку структуры json-файла.

  2. Тестовая загрузка:

    • Перед загрузкой большого файла протестируйте процесс с 2-3 задачами.

  3. Уникальность времени:

    • Для задач в рамках одной очереди избегайте одинакового scheduleTime, чтобы предотвратить конфликты.