Erro ao executar job (quartz plugin)
05/08/2014 18:26
class DailyJob {
static triggers = {
cron name: "MyTrigger", cronExpression: "08 30 03 * * ?"
}
def execute() {
try{
def variavel1 = Variavel1.findAllByBolinha("bolinha", [fetch:[atributo:"eager"]])
variavel1 = variavel1.collate((int)((variavel1.size()+1)/2))
/* Cria uma tread para cada lista */
ExecutorService executor1 = Executors.newSingleThreadExecutor()
ExecutorService executor2 = Executors.newSingleThreadExecutor()
/* Dispara as treads */
executor1.execute {
analyzes(list1)
}
executor2.execute {
analyzes(list2)
}
}catch(RuntimeException e){
log.info(e.message)
}
}
private analyzes(List lista){
Domain.withNewSession{
for(item in lista){
try{
metodoA(item)
metodoB(item)
metodoC(item)
}catch(RuntimeException e){
/* trata a exception */
}
}
/* tentei fechar a sessão aqui com o "sessionFactory.currentSession.close()", mas não adiantou */
}
}
private boolean metodoA(Variavel1 v){
/* realizo verificações, chamo serviços externos ao job */
}
private boolean metodoB(Variavel1 v){
/* realizo verificações, chamo serviços externos ao job */
}
private boolean metodoC(Variavel1 v){
/* realizo verificações, chamo serviços externos ao job */
}
}
private analyzes(List lista){
Domain.withNewSession{
for(item in lista){
try{
metodoA(item)
...
/* Dispara as treads */
Domain.withNewSession{
executor1.execute {
analyzes(list1)
}
}
Domain.withNewSession{
executor2.execute {
analyzes(list2)
}
}
Para se registrar, clique aqui.