AI Scheduler
AI Scheduler
L'AI Scheduler ti permette di definire job di generazione contenuti ricorrenti che girano automaticamente su un cron. Ogni job invia un prompt a un provider AI e mette l'output in Content Review per l'approvazione prima della pubblicazione.
Come funziona
Trigger cron
│
▼
plg_task_joomlaai (Joomla) / wpai_run_due_jobs (WP-Cron)
│
▼
SchedulerService::runDueJobs()
│ Lock della riga del job (UPDATE WHERE is_running = 0)
▼
AIService::generateForJob($job)
│ Chiama l'API del provider
▼
Output salvato → tabella ContentReview (status: pending)
│
▼
Notifica email (se configurata)
Il lock di riga impedisce a uno stesso job di girare due volte se due trigger cron partono contemporaneamente.
Lista job
Vai su JoomlaAI → AI Scheduler.
| Colonna | Descrizione |
|---|---|
| Titolo | Nome leggibile |
| Snippet prompt | Primi 80 caratteri del prompt |
| Schedule | Espressione cron (etichetta leggibile) |
| Provider | Provider AI utilizzato |
| Ultima esecuzione | Timestamp dell'ultima esecuzione |
| Stato | active / paused / error |
| Azioni | Modifica · Pausa/Riprendi · Esegui ora · Elimina |
Il pulsante Esegui ora triggera il job immediatamente ignorando lo schedule. Utile per testare.
Creare un job
Clicca Nuovo nella toolbar.
Tab Generale
| Campo | Obbligatorio | Descrizione |
|---|---|---|
| Titolo | Sì | Nome descrittivo mostrato nella lista job |
| Prompt | Sì | Il testo inviato all'AI. Usa {placeholders} per contenuto dinamico. |
| Schedule | Sì | Ogni quanto gira il job (vedi schedule sotto) |
| Provider | No | Override del provider globale di default |
| Modello | No | Override del modello globale di default |
| Stato | Sì | Active o Paused |
Tab Contenuto
| Campo | Descrizione |
|---|---|
| Template titolo output | Template per il titolo dell'articolo generato (es. {date} — Aggiornamento settimanale) |
| Categoria target | Categoria Joomla / WP da assegnare alla pubblicazione |
| Tag | Tag separati da virgola da applicare in pubblicazione |
| Azione post-pubblicazione | draft, published, o pending (WP) / 0 o 1 (stato Joomla) |
Tab Opzioni
| Campo | Default | Descrizione |
|---|---|---|
| Token max | 1024 | Limite lunghezza output |
| Temperature | 0.7 | Livello creatività (0 = deterministico, 2 = molto creativo) |
| Retry on failure | 2 | Quanti tentativi se il provider restituisce errore |
| Notify on success | OFF | Invia email quando l'output è pronto per la revisione |
| Notify on failure | ON | Invia email se tutti i retry falliscono |
Opzioni schedule
| Etichetta | Espressione cron | Esecuzioni |
|---|---|---|
| Ogni 5 minuti | */5 * * * * | 288× / giorno |
| Ogni ora | 0 * * * * | 24× / giorno |
| Giornaliero (mezzanotte) | 0 0 * * * | 1× / giorno |
| Giornaliero (08:00) | 0 8 * * * | 1× / giorno |
| Settimanale (Lun 08:00) | 0 8 * * 1 | 1× / settimana |
| Mensile (1° del mese, 08:00) | 0 8 1 * * | 1× / mese |
| Custom | — | Qualsiasi espressione cron valida |
Placeholder nei prompt
Usa placeholder tra graffe nel testo del prompt. Lo scheduler li sostituisce a runtime:
| Placeholder | Valore |
|---|---|
{date} | Data corrente (YYYY-MM-DD) |
{day} | Nome del giorno (Monday, Tuesday…) |
{month} | Nome del mese (January…) |
{year} | Anno a quattro cifre |
{site_name} | Nome del tuo sito |
{site_url} | URL del tuo sito |
I placeholder custom della Template Library sono anch'essi supportati.
Task pianificati integrati
Tre task sono pre-installati e girano automaticamente:
| Task | Schedule default | Descrizione |
|---|---|---|
| JoomlaAI: run due jobs | Ogni 5 minuti | Esegue tutti i job scheduler attivi la cui next-run time è passata |
| JoomlaAI: provider health check | Ogni ora | Ping a ogni provider configurato e aggiorna lo stato Dashboard |
| JoomlaAI: cleanup old data | Giornaliero (03:00) | Purge della chat history oltre retention, sessioni scadute, record audit vecchi |
Permessi
| Capability | Accesso |
|---|---|
joomlaai.scheduler / wpai_manage_scheduler | Creare, modificare, eliminare, eseguire job |
core.manage / wpai_dashboard | Vedere lo Scheduler (sola lettura) |
_Ultimo aggiornamento: 2026-05-19 · v2.5.3_
