Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 10 di 68
  • livello ninja
Indice lezioni

Task scheduling con il Timer Service

Impariamo a schedulare l'esecuzione dei metodi di tutti i tipi di session bean (eccetto il tipo stateful) con il Timer Service.
Impariamo a schedulare l'esecuzione dei metodi di tutti i tipi di session bean (eccetto il tipo stateful) con il Timer Service.
Link copiato negli appunti

Il Timer Service è un servizio del Container che consente di schedulare l'esecuzione dei metodi di tutti i tipi di session bean eccetto il tipo stateful.
Possiamo schedulare il timeout di un Timer in diversi modi: come calendario, a singola azione dopo un tempo specificato,
o come task che si ripete ad intervalli di tempo.

Un Timer può essere di due tipi: programmatico o automatico. Un Timer programmatico viene creato utilizzando l'interfaccia TimerService, mentre un Timer automatico viene creato con il deploy di EJB che contengono metodi marcati con annotation java.ejb.Schedule o java.ejb.Schedules.

Lo scheduling basato su calendario può essere utilizzato sia con i Timer di tipo programmatico che automatico. Lo scheduling di tipo calendario prevede l'uso dei seguenti attributi:

Attributo Descrizione
second Valore che esprime secondi [0-59], ad esempio second="20".
minute Esprime minuti [0-59], ad esempio minute="20".
hour Esprime ore [0-23], ad esempio hour="15".
dayOfWeek Esprime il giorno della settimana [0-7], in notazione letterale [Sun, Mon, Tue, Wed, Thu ,Fri, Sat], ad esempio dayOfWeek="4" o dayOfWeek="Mon" (I valori 0 e 7 si riferiscono a Sunday).
dayOfMonth Esprime i giorni del mese [1-31], ad esempio dayOfMonth="20".
month Esprime i mesi [1-12], in notazione letterale [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec], ad esempio month="1" omonth="Jan".
year Esprime l'anno in quattro cifre, ad esempio year="2016".

Per il giorno del mese esistono delle particolarità. I valori da -7 a -1 indicano i giorni che mancano alla fine del mese, per esempio 3 giorni alla fine del mese: dayOfMonth="-3". La parola Last consente di specificare l'ultimo giorno del mese: dayOfMonth="Last". Sono possibili inoltre combinazioni usando gli insiemi di parole: [1st, 2nd .. Last] [Sun, Mon .. Sat], ad esempio il secondo lunedi del mese: dayOfMonth="2nd Mon".

"*" specifica l'opzione "qualsiasi valore", ad esempio possiamo scrivere:

dayOfWeek="*"

per ogni giorno della settimana. Con la virgola possiamo poi definire una lista di valori per un attributo, ad esempio con hour="4,9-17,22" intendiamo un task da eseguire alle 4 del mattino, ogni ora tra le 9 e le 17 (il trattino specifica un range con gli estremi inclusi) e alle 22.

Un altro carattere speciale interessante è lo slash che vincola un attributo ad avere un inizio ed un intervallo. Nell'espressione x/y, x rappresenta il punto di inizio e y l'intervallo, ad esempio minute="*/10" specifica ogni 10 minuti in un'ora e "*" in questa posizione equivale al valore 0 (inizio dell'ora).

Ti consigliamo anche