package br.com.centralit.citcorpore.batch;
import java.util.ResourceBundle;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import br.com.citframework.log.Log;
import br.com.citframework.log.LogFactory;
import br.com.citframework.mail.MailManager;
import br.com.citframework.mail.MailMessage;
import br.com.citframework.util.Constantes;
public abstract class JobService implements Job {
private static Log log = LogFactory.getLog();
protected static final String MAIL_CFG_FILE = "MailJob";
protected static final String DEFAULT_MAIL;
private Integer idEmpresa;
static {
ResourceBundle mailConfig = ResourceBundle.getBundle(MAIL_CFG_FILE);
DEFAULT_MAIL = mailConfig.getString("default.mail");
}
private JobExecutionContext contexto;
public JobService() {
String idEmpStr = Constantes.getValue("ID_EMPRESA_PROC_BATCH");
if (idEmpStr == null || idEmpStr.trim().equalsIgnoreCase("")){
idEmpresa = new Integer(1);
}else{
idEmpresa = new Integer(idEmpStr);
}
}
/**
* <p>
* Chamado por <code>{@link org.quartz.Scheduler}</code> quando
* <code>{@link org.quartz.Trigger}</code> dispara o que est� relacionado com a <code>Job</code>.
* </p>
*
* @throws JobExecutionException
* if there is an exception while executing the job.
*/
public void execute(JobExecutionContext contexto)
throws JobExecutionException {
try {
log.registraLog("Iniciando a execu��o do job " + this.getClass().getName() + " em " + new java.util.Date() , this.getClass(), Log.INFO);
} catch (Exception e1) {
System.out.println("Problemas com o registro de LOGS...");
e1.printStackTrace();
}
this.contexto = contexto;
try {
executar();
MailMessage msg = new MailMessage(DEFAULT_MAIL, "", "",
br.com.citframework.util.Constantes.getValue(
"EMAIL_FROM"), "EXECU��O DE JOB - BATCH: "
+ this.getClass().getName(), "Execu��o OK.");
MailManager mail = new MailManager();
mail.send(msg);
} catch (Exception e) {
try{
log.registraLog("Erro na execu��o do job "
+ this.getClass().getName() + " em "
+ new java.util.Date() + " -> " + e.getMessage(),
this.getClass(), Log.ERROR);
log.registraLog(e, this.getClass(), Log.ERROR);
} catch (Exception e1) {
System.out.println("Problemas com o registro de LOGS...");
e1.printStackTrace();
}
MailMessage msg = new MailMessage(DEFAULT_MAIL, "", "",
br.com.citframework.util.Constantes.getValue(
"EMAIL_FROM"),
"PROBLEMA - EXECU��O DE JOB - BATCH: "
+ this.getClass().getName(),
"Erro na execu��o do job "
+ this.getClass().getName() + " em "
+ new java.util.Date() + " -> " + e.getMessage());
MailManager mail = new MailManager();
try {
mail.send(msg);
} catch (Exception e1) {
e1.printStackTrace();
}
}
try {
log.registraLog("Finalizando a execu��o do job " + this.getClass().getName() + " em " + new java.util.Date() , this.getClass(), Log.INFO);
} catch (Exception e1) {
System.out.println("Problemas com o registro de LOGS...");
e1.printStackTrace();
}
}
public static Log getLog() {
return log;
}
public static void setLog(Log log) {
JobService.log = log;
}
public JobExecutionContext getContexto() {
return contexto;
}
public void setContexto(JobExecutionContext contexto) {
this.contexto = contexto;
}
public Integer getIdEmpresa() {
return idEmpresa;
}
public abstract void executar() throws Exception;
}