DOCUMENTAZIONE Esempio con Quartz
Autore: Ivan
Data: lunedì 10 marzo 2008
L’esempio provato si trova all’indirizzo:
http://www-128.ibm.com/developerworks/java/library/j-quartz/?ca=dgr-jw17JavaQuartZ#download
E’ stato creato un progetto in Eclipse con i cinque file dell’esempio.
Sono state scaricate le librerie di Quartz all’indirizzo:
http://www.opensymphony.com/quartz/download.action.
L’ultima versione è la 1.6.0.
L’esempio di funzionamento è stato svolto in locale, con un server-web Apache installato sulla
macchina e con un database MySql. Tutto questo è stato ottenuto attraverso l’installazione di
EasyPhp.
Eseguire lo script appropriato all’interno della cartella “docs\dbTables” in base al database usato.
Nel nostro caso è stato eseguito lo script “tables_mysql.sql” su phpMyAdmin nell’amministrazione
di EasyPhp.
Lo script creerà tutte le tabelle necessarie alla schedulazione dei job.
Questo script ci dice quale driver utilizzare per far funzionare la connessione al db. In realtà io ho
trovato un altro driver.
Nel nostro esempio è stato scaricato e installato il driver “mysql-connector-java-5.1.6-bin.jar” dal
sito http://dev.mysql.com/downloads/connector/j/5.1.html. Questo jar va inserito nella cartella del
progetto e linkato al progetto come libreria attraverso le properties.
Bisogna aggiungere al progetto anche le librerie (.jar) che si trovano nelle cartelle “quartz1.6.0\lib\core”, “quartz-1.6.0\lib\optional” e “quartz-1.6.0\lib\build”.
NOTA:
E’ stata aggiunta anche la libreria spJMS presente in Nemesi2007, perché altrimenti da 2 warning.
Probabilmente perché quella già presente in quartz è meno aggiornata. In realtà dai warning non
sembra quello il problema…però bo…
log4j:WARN No appenders could be found for logger
(org.quartz.simpl.SimpleThreadPool).
log4j:WARN Please initialize the log4j system properly.
Bisogna modificare il file “quartz.properties” settando i parametri per la connessione al db MySql
nel nostro caso.
Parte modificata del file quartz.properties
# Define the datasource to use
org.quartz.dataSource.qzDS.driver = org.gjt.mm.mysql.Driver
#mm.mysql-2.0.7-bin.jar
org.quartz.dataSource.qzDS.URL = jdbc:mysql://127.0.0.1:3306/provaQuartz
org.quartz.dataSource.qzDS.user = root
#org.quartz.dataSource.qzDS.password =
org.quartz.dataSource.qzDS.maxConnections = 30
NOTA:
E’ stata commentata la riga della password perché no c’è nessuna password per accedere al
database.
Nell’esempio ci sono due TriggerRunner che eseguono ciascuno lo stesso job ma con tempistiche
diverse. Il SimpleTriggerRunner esegue il SimpleQuartzJob ogni 10 secondi per 100 volte, mentre
il CronTriggerRunner esegue il SimpleQuartzJob (con un altro identificativo) ogni 5 secondi
partendo dal secondo “0” qualunque giorno della settimana.