Vue d’ensemble
L’API Scheduler permet de gerer les taches planifiees de Fess. Vous pouvez demarrer/arreter les taches de crawl, creer/modifier/supprimer des configurations de planification, etc.
URL de base
/api/admin/scheduler
Liste des endpoints
| Methode | Chemin | Description |
|---|---|---|
| GET/PUT | /settings | Obtention de la liste des taches planifiees |
| GET | /setting/{id} | Obtention d’une tache planifiee |
| POST | /setting | Creation d’une tache planifiee |
| PUT | /setting | Mise a jour d’une tache planifiee |
| DELETE | /setting/{id} | Suppression d’une tache planifiee |
| PUT | /{id}/start | Demarrage d’une tache |
| PUT | /{id}/stop | Arret d’une tache |
Obtention de la liste des taches planifiees
Requete
GET /api/admin/scheduler/settings
PUT /api/admin/scheduler/settings
Parametres
| Parametre | Type | Requis | Description |
|---|---|---|---|
size | Integer | Non | Nombre d’elements par page (par defaut : 20) |
page | Integer | Non | Numero de page (commence a 0) |
Reponse
{
"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
}
}
Obtention d’une tache planifiee
Requete
GET /api/admin/scheduler/setting/{id}
Reponse
{
"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
}
}
}
Creation d’une tache planifiee
Requete
POST /api/admin/scheduler/setting
Content-Type: application/json
Corps de la requete
{
"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
}
Description des champs
| Champ | Requis | Description |
|---|---|---|
name | Oui | Nom de la tache |
target | Oui | Cible d’execution (« all » ou cible specifique) |
cronExpression | Oui | Expression Cron (secondes minutes heures jour mois jour-semaine) |
scriptType | Oui | Type de script (« groovy ») |
scriptData | Oui | Script a executer |
jobLogging | Non | Activer la journalisation (par defaut : true) |
crawler | Non | S’il s’agit d’une tache de crawl (par defaut : false) |
available | Non | Active/Desactive (par defaut : true) |
sortOrder | Non | Ordre d’affichage |
Reponse
{
"response": {
"status": 0,
"id": "new_job_id",
"created": true
}
}
Exemples d’expressions Cron
| Expression Cron | Description |
|---|---|
0 0 2 * * ? | Execution tous les jours a 2h du matin |
0 0 0/6 * * ? | Execution toutes les 6 heures |
0 0 2 * * MON | Execution tous les lundis a 2h du matin |
0 0 2 1 * ? | Execution le 1er de chaque mois a 2h du matin |
Mise a jour d’une tache planifiee
Requete
PUT /api/admin/scheduler/setting
Content-Type: application/json
Corps de la requete
{
"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
}
Reponse
{
"response": {
"status": 0,
"id": "existing_job_id",
"created": false
}
}
Suppression d’une tache planifiee
Requete
DELETE /api/admin/scheduler/setting/{id}
Reponse
{
"response": {
"status": 0,
"id": "deleted_job_id",
"created": false
}
}
Demarrage d’une tache
Execute immediatement une tache planifiee.
Requete
PUT /api/admin/scheduler/{id}/start
Reponse
{
"response": {
"status": 0
}
}
Notes
Une erreur est retournee si la tache est deja en cours d’execution
Une erreur est retournee si la tache est desactivee (
available: false)
Arret d’une tache
Arrete une tache en cours d’execution.
Requete
PUT /api/admin/scheduler/{id}/stop
Reponse
{
"response": {
"status": 0
}
}
Exemples d’utilisation
Creation et execution d’une tache de crawl
# Creer la tache
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
}'
# Executer la tache immediatement
curl -X PUT "http://localhost:8080/api/admin/scheduler/{job_id}/start" \
-H "Authorization: Bearer YOUR_TOKEN"
Verification de l’etat des taches
# Verifier l'etat de toutes les taches
curl "http://localhost:8080/api/admin/scheduler/settings" \
-H "Authorization: Bearer YOUR_TOKEN"
# Le champ running indique si la tache est en cours d'execution
Informations complementaires
Vue d’ensemble de l’API Admin - Vue d’ensemble de l’API Admin
API JobLog - API des journaux de taches
Planificateur de tâches - Guide de gestion du planificateur