Übersicht
Die Scheduler API dient zur Verwaltung von geplanten Jobs in Fess. Sie können Crawl-Jobs starten/stoppen sowie Zeitplan-Einstellungen erstellen, aktualisieren und löschen.
Basis-URL
/api/admin/scheduler
Endpunktliste
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET/PUT | /settings | Geplante Jobs auflisten |
| GET | /setting/{id} | Geplanten Job abrufen |
| POST | /setting | Geplanten Job erstellen |
| PUT | /setting | Geplanten Job aktualisieren |
| DELETE | /setting/{id} | Geplanten Job löschen |
| PUT | /{id}/start | Job starten |
| PUT | /{id}/stop | Job stoppen |
Geplante Jobs auflisten
Request
GET /api/admin/scheduler/settings
PUT /api/admin/scheduler/settings
Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
size | Integer | Nein | Anzahl der Einträge pro Seite (Standard: 20) |
page | Integer | Nein | Seitennummer (beginnt bei 0) |
Response
{
"response": {
"status": 0,
"settings": [
{
"id": "job_id_1",
"name": "Default Crawler",
"target": "all",
"cronExpression": "0 0 0 * * ?",
"scriptType": "groovy",
"scriptData": "...",
"jobLogging": true,
"crawler": true,
"available": true,
"sortOrder": 0,
"running": false
}
],
"total": 5
}
}
Geplanten Job abrufen
Request
GET /api/admin/scheduler/setting/{id}
Response
{
"response": {
"status": 0,
"setting": {
"id": "job_id_1",
"name": "Default Crawler",
"target": "all",
"cronExpression": "0 0 0 * * ?",
"scriptType": "groovy",
"scriptData": "return container.getComponent(\"crawlJob\").execute();",
"jobLogging": true,
"crawler": true,
"available": true,
"sortOrder": 0,
"running": false
}
}
}
Geplanten Job erstellen
Request
POST /api/admin/scheduler/setting
Content-Type: application/json
Request-Body
{
"name": "Daily Crawler",
"target": "all",
"cronExpression": "0 0 2 * * ?",
"scriptType": "groovy",
"scriptData": "return container.getComponent(\"crawlJob\").execute();",
"jobLogging": true,
"crawler": true,
"available": true,
"sortOrder": 1
}
Feldbeschreibungen
| Feld | Erforderlich | Beschreibung |
|---|---|---|
name | Ja | Job-Name |
target | Ja | Ausführungsziel („all“ oder ein bestimmtes Ziel) |
cronExpression | Ja | Cron-Ausdruck (Sekunden Minuten Stunden Tag Monat Wochentag) |
scriptType | Ja | Skript-Typ („groovy“) |
scriptData | Ja | Ausführungsskript |
jobLogging | Nein | Protokollierung aktivieren (Standard: true) |
crawler | Nein | Ob es ein Crawler-Job ist (Standard: false) |
available | Nein | Aktiviert/Deaktiviert (Standard: true) |
sortOrder | Nein | Anzeigereihenfolge |
Response
{
"response": {
"status": 0,
"id": "new_job_id",
"created": true
}
}
Cron-Ausdrücke Beispiele
| Cron-Ausdruck | Beschreibung |
|---|---|
0 0 2 * * ? | Täglich um 2:00 Uhr ausführen |
0 0 0/6 * * ? | Alle 6 Stunden ausführen |
0 0 2 * * MON | Jeden Montag um 2:00 Uhr ausführen |
0 0 2 1 * ? | Am 1. jeden Monats um 2:00 Uhr ausführen |
Geplanten Job aktualisieren
Request
PUT /api/admin/scheduler/setting
Content-Type: application/json
Request-Body
{
"id": "existing_job_id",
"name": "Updated Crawler",
"target": "all",
"cronExpression": "0 0 3 * * ?",
"scriptType": "groovy",
"scriptData": "...",
"jobLogging": true,
"crawler": true,
"available": true,
"sortOrder": 1,
"versionNo": 1
}
Response
{
"response": {
"status": 0,
"id": "existing_job_id",
"created": false
}
}
Geplanten Job löschen
Request
DELETE /api/admin/scheduler/setting/{id}
Response
{
"response": {
"status": 0,
"id": "deleted_job_id",
"created": false
}
}
Job starten
Führt einen geplanten Job sofort aus.
Request
PUT /api/admin/scheduler/{id}/start
Response
{
"response": {
"status": 0
}
}
Hinweise
Wenn der Job bereits läuft, wird ein Fehler zurückgegeben
Wenn der Job deaktiviert ist (
available: false), wird ein Fehler zurückgegeben
Job stoppen
Stoppt einen laufenden Job.
Request
PUT /api/admin/scheduler/{id}/stop
Response
{
"response": {
"status": 0
}
}
Verwendungsbeispiele
Crawl-Job erstellen und ausführen
# Job erstellen
curl -X POST "http://localhost:8080/api/admin/scheduler/setting" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Hourly Crawler",
"target": "all",
"cronExpression": "0 0 * * * ?",
"scriptType": "groovy",
"scriptData": "return container.getComponent(\"crawlJob\").execute();",
"jobLogging": true,
"crawler": true,
"available": true
}'
# Job sofort ausführen
curl -X PUT "http://localhost:8080/api/admin/scheduler/{job_id}/start" \
-H "Authorization: Bearer YOUR_TOKEN"
Job-Status überprüfen
# Status aller Jobs überprüfen
curl "http://localhost:8080/api/admin/scheduler/settings" \
-H "Authorization: Bearer YOUR_TOKEN"
# Das running-Feld zeigt den Ausführungsstatus an
Referenzinformationen
Admin API Übersicht - Admin API Übersicht
JobLog API - Job-Protokoll API
Scheduler - Scheduler-Verwaltungsanleitung