package org.quickbundle.third.quartz;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quickbundle.project.test.RmAlarmCollector;
import org.quickbundle.tools.helper.RmStringHelper;
import org.quickbundle.tools.support.log.RmLogHelper;
import org.slf4j.Logger;
public abstract class RmAbstractJob implements Job {
private static Logger log = RmLogHelper.getLogger(RmAbstractJob.class);
// protected void doExecutor(final Runnable runnable) {
// new Executor(runnable).start();
// }
public abstract Object doJob(final JobExecutionContext context) throws Exception;
public void execute(final JobExecutionContext context) throws JobExecutionException {
try {
Object resultObj = doJob(context);
String result = String.valueOf(resultObj);
if (result != null && result.length() > 490) {
result = result.substring(0, 490);
}
context.setResult("OK:" + result);
} catch (Throwable e) {
e.printStackTrace();
String err = e.toString();
try {
err = RmStringHelper.getStackTraceStr(e, 1000);
String[] info = RmAlarmCollector.createInfo("saveChannel_RequiresNew() error", e);
log.error(info[0]);
log.error(info[1]);
if (err != null && err.length() > 490) {
err = err.substring(0, 490);
}
} catch (Exception e2) {
e.printStackTrace();
}
context.setResult("FAIL:" + err);
}
}
}