Получение информации о задачах

Содержание раздела
  1. URL
  2. Заголовки запроса
    1. [ x-request-id ]
  3. Тело запроса
  4. Примеры запросов
    1. Запрос информации о задаче без журнала запусков
    2. Запрос информации о выполняемой задаче
    3. Запрос информации о задаче с журналом запусков
    4. Запрос информации о всех задачах

Доступны GET-методы для получения информации о задачах планировщика:

В обоих случаях по задаче возвращаются: ее настройки, время очередного запуска, сведения о текущем или последнем завершенном запуске, а также опционально — журнал запусков.

Информация возвращается по активным и неактивным задачам.

URL

  • {baseUrl}/api/v1/scheduler/jobs/{job}[?withLog={number}] — получение информации о задаче {job};
  • {baseUrl}/api/v1/scheduler/jobs[?withLog={number}] — получение информации о всех задачах окружения.

Параметры:

  • baseUrl — адрес ноды Prostore, состоящий из IP-адреса или доменного имени и номера порта;
  • job — имя задачи, по которой запрашивается информация;
  • withLog — количество последних записей журнала запусков, возвращаемых по задаче:
    • 0 (по умолчанию) — журнал запусков не возвращается;
    • <N>(где N > 0) — возвращаются записи о последних N завершенных запусках.

Заголовки запроса

[ x-request-id ]

Задает уникальный идентификатор HTTP-запроса. Если не указан, система генерирует UUID-значение и возвращает его в качестве идентификатора в ответе.

Тело запроса

Тело запроса отсутствует.

Примеры запросов

Запрос информации о задаче без журнала запусков

curl -X 'GET' \
  'http://localhost:9090/api/v1/scheduler/jobs/matview_db_sync' \
  -H 'x-request-id: 7d24b0f5-91ce-4a83-b6d7-2e5a08c31f49'

Ответ по задаче с последним успешным запуском (lastRunStatus = succeeded):

{
  "id": "8c91a03e-12bf-4f56-9a88-2c03d4e5f607",
  "name": "matview_db_sync",
  "schedule": "0 3 * * *",
  "command": [
    "SYNC_MATERIALIZED_VIEWS(matview_db)"
  ],
  "datasource": null,
  "active": true,
  "nextRunDateTime": "2026-08-13 03:00:00",
  "lastRunNumber": 4,
  "lastRunStatus": "succeeded",
  "lastRunCommandResult": [
    {
      "query": "SYNC_MATERIALIZED_VIEWS(matview_db)",
      "queryResult": {
        "queryId": "8c91a03e-12bf-4f56-9a88-2c03d4e5f607.4.0",
        "rows": 1,
        "statistics": {
          "elapsedTotalMs": 1184,
          "elapsedDbMs": 961
        },
        "metadata": [
          {
            "name": "delta_num",
            "type": "BIGINT",
            "size": null,
            "nullable": false
          },
          {
            "name": "delta_date",
            "type": "TIMESTAMP",
            "size": 6,
            "nullable": false
          },
          {
            "name": "cn_from",
            "type": "BIGINT",
            "size": null,
            "nullable": false
          }
        ],
        "result": [
          {
            "delta_num": 27,
            "delta_date": "2026-08-12 03:00:02.114000",
            "cn_from": 1786244402000000
          }
        ]
      }
    }
  ],
  "lastRunDateTimeStart": "2026-08-12 03:00:01",
  "lastRunDateTimeEnd": "2026-08-12 03:00:02"
}

Запрос информации о выполняемой задаче

curl -X 'GET' \
  'http://localhost:9090/api/v1/scheduler/jobs/sales_daily_load' \
  -H 'x-request-id: c58e1a7b-306d-42f9-8b4c-19f7e0a52d63'

Ответ по задаче, выполняемой в момент запроса (lastRunStatus = running):

{
  "id": "a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d",
  "name": "sales_daily_load",
  "schedule": "*/15 * * * *",
  "command": [
    "USE marketing",
    "BEGIN DELTA",
    "INSERT INTO marketing.sales SELECT * FROM marketing.sales_ext_upload",
    "COMMIT DELTA"
  ],
  "datasource": null,
  "active": true,
  "nextRunDateTime": "2026-08-12 14:30:00",
  "lastRunNumber": 4,
  "lastRunStatus": "running",
  "lastRunCommandResult": [
    {
      "query": "USE marketing",
      "queryResult": {
        "queryId": "a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d.4.0",
        "rows": 1,
        "statistics": {
          "elapsedTotalMs": 2,
          "elapsedDbMs": 0
        },
        "metadata": [
          {
            "name": "datamart",
            "type": "VARCHAR",
            "size": null,
            "nullable": false
          }
        ],
        "result": [
          {
            "datamart": "marketing"
          }
        ]
      }
    },
    {
      "query": "BEGIN DELTA",
      "queryResult": {
        "queryId": "a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d.4.1",
        "rows": 1,
        "statistics": {
          "elapsedTotalMs": 3,
          "elapsedDbMs": 1
        },
        "metadata": [
          {
            "name": "delta_num",
            "type": "BIGINT",
            "size": null,
            "nullable": false
          }
        ],
        "result": [
          {
            "delta_num": 58
          }
        ]
      }
    },
    {
      "query": "INSERT INTO marketing.sales SELECT * FROM marketing.sales_ext_upload",
      "queryResult": {
        "queryId": "a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d.4.2",
        "rows": 1,
        "statistics": {
          "elapsedTotalMs": 842,
          "elapsedDbMs": 815
        },
        "metadata": [
          {
            "name": "sysCn",
            "type": "BIGINT",
            "size": null,
            "nullable": true
          },
          {
            "name": "ts",
            "type": "TIMESTAMP",
            "size": 6,
            "nullable": true
          },
          {
            "name": "rowsAffected",
            "type": "BIGINT",
            "size": null,
            "nullable": false
          }
        ],
        "result": [
          {
            "sysCn": 1786245301000000,
            "ts": null,
            "rowsAffected": 214
          }
        ]
      }
    }
  ],
  "lastRunDateTimeStart": "2026-08-12 14:15:01",
  "lastRunDateTimeEnd": null
}

Время следующего запуска (nextRunDateTime) вычисляется перед началом текущего запуска.

lastRunCommandResult содержит результаты тех запросов задачи, которые уже исполнены. Запрос COMMIT DELTA в примере еще исполняется и пока отсутствует в результатах. Значение lastRunDateTimeEnd остается равным null до завершения текущего запуска.

Запрос информации о задаче с журналом запусков

curl -X 'GET' \
  'http://localhost:9090/api/v1/scheduler/jobs/sales_daily_load?withLog=2' \
  -H 'x-request-id: 3b0f9e8d-4c17-4d52-9a83-6e21fb04c795'

Фрагмент ответа с неуспешным последним запуском:

{
  "id": "a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d",
  "name": "sales_daily_load",
  "schedule": "*/15 * * * *",
  "command": [
    "USE marketing",
    "BEGIN DELTA",
    "INSERT INTO marketing.sales SELECT * FROM marketing.sales_ext_upload",
    "COMMIT DELTA"
  ],
  "datasource": null,
  "active": true,
  "nextRunDateTime": "2026-08-12 14:15:00",
  "lastRunNumber": 3,
  "lastRunStatus": "failed",

  ...

  "log": [
    {
      "runNumber": 2,
      "status": "succeeded",
      "commandResult": [

        ...

      ],
      "dateTimeStart": "2026-08-12 13:45:01",
      "dateTimeEnd": "2026-08-12 13:45:09"
    },
    {
      "runNumber": 3,
      "status": "failed",
      "commandResult": [
        {
          "query": "USE marketing",
          "queryResult": {
            "queryId": "a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d.3.0",
            "rows": 1,
            "statistics": {
              "elapsedTotalMs": 2,
              "elapsedDbMs": 0
            },
            "metadata": [
              {
                "name": "datamart",
                "type": "VARCHAR",
                "size": null,
                "nullable": false
              }
            ],
            "result": [
              {
                "datamart": "marketing"
              }
            ]
          }
        },
        {
          "query": "BEGIN DELTA",
          "queryResult": {
            "queryId": "a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d.3.1",
            "exceptionMessage": "Delta already started"
          }
        }
      ],
      "dateTimeStart": "2026-08-12 14:00:01",
      "dateTimeEnd": "2026-08-12 14:00:02"
    }
  ]
}

Запросы INSERT INTO и COMMIT DELTA отсутствуют в commandResult, так как выполнение команды прервалось на запросе BEGIN DELTA, завершившемся с ошибкой.

Запрос информации о всех задачах

curl -X 'GET' \
  'http://localhost:9090/api/v1/scheduler/jobs' \
  -H 'x-request-id: a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d'

Фрагмент ответа:

{
  "8c91a03e-12bf-4f56-9a88-2c03d4e5f607": {
    "id": "8c91a03e-12bf-4f56-9a88-2c03d4e5f607",
    "name": "matview_db_sync",
    "schedule": "0 3 * * *",
    "command": [
      "SYNC_MATERIALIZED_VIEWS(matview_db)"
    ],
    "datasource": null,
    "active": true,
    "nextRunDateTime": "2026-08-13 03:00:00",
    "lastRunNumber": 4,
    "lastRunStatus": "succeeded",

    ...

    "lastRunDateTimeStart": "2026-08-12 03:00:01",
    "lastRunDateTimeEnd": "2026-08-12 03:00:02"
  },
  "a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d": {
    "id": "a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d",
    "name": "sales_daily_load",
    "schedule": "*/15 * * * *",
    "command": [
      "USE marketing",
      "BEGIN DELTA",
      "INSERT INTO marketing.sales SELECT * FROM marketing.sales_ext_upload",
      "COMMIT DELTA"
    ],
    "datasource": null,
    "active": false,
    "nextRunDateTime": null,
    "lastRunNumber": null,
    "lastRunStatus": null,
    "lastRunCommandResult": null,
    "lastRunDateTimeStart": null,
    "lastRunDateTimeEnd": null
  }
}