API de JobLog

Visión General

La API de JobLog es para consultar y gestionar los registros de ejecución de trabajos de Fess. Permite obtener y eliminar el historial de ejecución, los resultados y la información de errores de trabajos programados y de rastreo.

URL Base

/api/admin/joblog

Lista de Endpoints

Método Ruta Descripción
GET /logs Obtener lista de registros de trabajos
GET /log/{id} Obtener registro de trabajo
DELETE /log/{id} Eliminar registro de trabajo

Obtener Lista de Registros de Trabajos

Solicitud

GET /api/admin/joblog/logs

Parámetros

Parámetro Tipo Requerido Descripción
size Integer No Número de elementos por página (predeterminado: 25; se puede cambiar con paging.page.size en fess_config.properties)
page Integer No Número de página (basado en 1, predeterminado: 1)
id String No Filtro por ID de registro de trabajo (coincidencia exacta)

Estos parámetros se indican en el cuerpo de la solicitud JSON (por ejemplo, {"size": 50, "page": 1}). Los valores indicados en la cadena de consulta de la URL (por ejemplo, ?size=50) se ignoran, por lo que, si no se indican en el cuerpo, siempre se devuelven los primeros 25 elementos.

Respuesta

{
  "response": {
    "status": 0,
    "logs": [
      {
        "id": "joblog_id_1",
        "job_name": "Default Crawler",
        "job_status": "ok",
        "target": "all",
        "script_type": "javascript",
        "script_data": "return container.getComponent(\"crawlJob\").execute();",
        "script_result": "Job completed successfully",
        "start_time": "1738116000000",
        "end_time": "1738118723000"
      },
      {
        "id": "joblog_id_2",
        "job_name": "Default Crawler",
        "job_status": "fail",
        "target": "all",
        "script_type": "javascript",
        "script_data": "return container.getComponent(\"crawlJob\").execute();",
        "script_result": "Error: Connection timeout",
        "start_time": "1738029600000",
        "end_time": "1738030215000"
      }
    ],
    "total": 100
  }
}

Campos de Respuesta

Campo Descripción
id ID del registro de trabajo
job_name Nombre del trabajo
job_status Estado del trabajo (ok: exitoso, fail: fallido, running: en ejecución)
target Objetivo de ejecución (nombre del objetivo del programador; el valor predeterminado es all)
script_type Tipo de script (ejemplo: javascript)
script_data Script ejecutado
script_result Resultado de la ejecución
start_time Hora de inicio (milisegundos epoch; devuelto como cadena de texto)
end_time Hora de finalización (milisegundos epoch; devuelto como cadena de texto). No se devuelve para trabajos en ejecución.

Nota

Cada objeto de registro en la respuesta incluye también un campo interno crud_mode (un entero que indica el modo de operación CRUD, siempre 0 para operaciones de lectura). Los clientes pueden ignorarlo sin problema.

Obtener Registro de Trabajo

Solicitud

GET /api/admin/joblog/log/{id}

Respuesta

{
  "response": {
    "status": 0,
    "log": {
      "id": "joblog_id_1",
      "job_name": "Default Crawler",
      "job_status": "ok",
      "target": "all",
      "script_type": "javascript",
      "script_data": "return container.getComponent(\"crawlJob\").execute();",
      "script_result": "Crawl completed successfully.\nDocuments indexed: 1234\nDocuments updated: 567\nDocuments deleted: 12\nErrors: 0",
      "start_time": "1738116000000",
      "end_time": "1738118723000"
    }
  }
}

Si el registro de trabajo con el ID especificado no existe, se devuelve una respuesta de error con status establecido en un valor distinto de 0.

Eliminar Registro de Trabajo

Solicitud

DELETE /api/admin/joblog/log/{id}

Respuesta

{
  "response": {
    "status": 0
  }
}

Si el registro de trabajo con el ID especificado no existe, se devuelve una respuesta de error con status establecido en un valor distinto de 0.

Ejemplos de Uso

Obtener Lista de Registros de Trabajos

curl -X GET "http://localhost:8080/api/admin/joblog/logs" \
     -H "Authorization: Bearer YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"size": 50, "page": 1}'

Extraer Solo Trabajos Fallidos

# Filtrar trabajos fallidos con jq
curl -X GET "http://localhost:8080/api/admin/joblog/logs" \
     -H "Authorization: Bearer YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"size": 1000}' | \
     jq '.response.logs[] | select(.job_status=="fail")'

Obtener Registro de Trabajo

curl -X GET "http://localhost:8080/api/admin/joblog/log/joblog_id_1" \
     -H "Authorization: Bearer YOUR_TOKEN"

Eliminar Registro de Trabajo

curl -X DELETE "http://localhost:8080/api/admin/joblog/log/joblog_id_1" \
     -H "Authorization: Bearer YOUR_TOKEN"

Calcular Tasa de Éxito de Trabajos

curl -X GET "http://localhost:8080/api/admin/joblog/logs" \
     -H "Authorization: Bearer YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"size": 1000}' | \
     jq '.response.logs | {total: length, ok: [.[] | select(.job_status=="ok")] | length, fail: [.[] | select(.job_status=="fail")] | length}'

Información de Referencia