Cron Scheduler
Cos'è il Cron Scheduler
Il Cron Scheduler è il sistema di automazione di Akendor che permette di generare idee e scrivere articoli automaticamente secondo una programmazione definita.
Utilizza le API esterne per creare contenuti basati su cluster tematici e li salva automaticamente nelle bozze dell'utente.
Struttura Configurazione
Percorso Database
users/[uid]/config/agenteStruttura del Documento
{
"cron_scheduler": {
"generic": {
"ideas": {
"enabled": true,
"days": ["Mon", "Wed", "Fri"],
"workHours": {
"start": "09:00",
"end": "18:00"
},
"frequency": "120",
"last_run": Timestamp
},
"writing": {
"enabled": true,
"days": ["Tue", "Thu"],
"workHours": {
"start": "10:00",
"end": "17:00"
},
"frequency": "180",
"last_run": Timestamp
}
},
"cluster_id_1": {
"ideas": { ... },
"writing": { ... }
}
}
}Parametri di Configurazione
Parametri Base
- enabled: boolean - Attiva/disattiva il job
- days: array[] - Giorni della settimana (Mon, Tue, etc.)
- frequency: string - Frequenza in minuti
- last_run: Timestamp - Ultima esecuzione
Work Hours
- start: string - Ora inizio (HH:mm)
- end: string - Ora fine (HH:mm)
- timezone: Europe/Rome (fisso)
Endpoint API
GET /api/cron
Endpoint principale per eseguire il cron scheduler
Headers Richiesti:
Authorization: Bearer {CRON_SECRET}
x-user-id: {USER_ID}Response:
{
"success": true,
"executed": [
{
"userId": "b7TGQPlizbOvZzjlmd0b2DkBQjV2",
"type": "generic_ideas",
"status": 200
}
]
}Flusso di Esecuzione
Validazione Autenticazione
Verifica del CRON_SECRET e validazione userId
Lettura Configurazione
Caricamento della configurazione da users/[uid]/config/agente
Controllo Schedule
Verifica giorno, ora e frequenza per ogni job configurato
Esecuzione Job
Chiamate API per generazione idee o scrittura articoli
Aggiornamento Timestamp
Salvataggio last_run per evitare esecuzioni duplicate
Setup con Cron-job.org
⚠️ Nota Importante
Per testing locale, usa ngrok per esporre localhost:3000 a internet.
Configurazione Cron-job.org:
URL: https://tuo-dominio.com/api/cron
Method: GET
Headers:
Authorization: Bearer {CRON_SECRET}
x-user-id: {USER_ID}
Schedule: */15 * * * * (ogni 15 minuti)Troubleshooting
Error 401 Unauthorized
Verifica che CRON_SECRET sia corretto nell'header Authorization.
Job non eseguito
Controlla: giorno della settimana, orario workHours, frequency, last_run.
API esterne non rispondono
Verifica che BASE_URL sia corretto e che i servizi esterni siano raggiungibili.