/**
*
*/
package org.openuap.cms.schedule;
import java.util.Date;
import org.openuap.runtime.log.Log;
/**
* <p>
* Title: WorkerThread
* </p>
*
* <p>
* Description:
* </p>
*
* <p>
* Copyright: Copyright (c) 2005
* </p>
*
* <p>
* Company:http://www.openuap.org
* </p>
* $Id: WorkerThread.java 3921 2010-10-26 11:43:49Z orangeforjava $
* @author Weiping Ju
* @version 1.0
*/
public class WorkerThread implements Runnable {
public static Log log = new Log("sys.schedule.workerthread");
private JobEntry je;
public void run() {
if (je == null || je.isActive()) {
return;
}
try {
if (!je.isActive()) {
je.setActive(true);
logJobEntryStateChange("started");
ScheduledJobLoader.getInstance().exec(je, je.getTask());
}
} catch (Exception e) {
log.error("Error in WorkerThread for Task: " + je.getTask(), e);
} finally {
if (je.isActive()) {
je.setActive(false);
logJobEntryStateChange("completed");
}
}
}
private final void logJobEntryStateChange(String state) {
System.out.println("Scheduled job:" + state + " task " + je.getTask()
+ " on " + new Date());
if (log.isDebugEnabled()) {
log.debug("Scheduled job:" + state + " task " + je.getTask()
+ " on " + new Date());
}
}
public WorkerThread(JobEntry je) {
this.je = null;
this.je = je;
}
}