📄 taskwrapper.java
字号:
package com.pub.timeswan;
/**
*
*/
import java.util.*;
import org.apache.log4j.*;
public class TaskWrapper {
private static Logger log = Logger.getLogger(TaskWrapper.class);
public TaskWrapper(String expr, Class cls, boolean concur, boolean newInst) {
if (cls == null || cls.isAssignableFrom(ITask.class)) {
_state = INVALID;
return;
}
_expr = expr;
_class = cls;
_concurrent = concur;
_newInstance = newInst;
}
public TaskWrapper(String expr, ITask obj/*, boolean concur*/) {
if (obj == null) {
_state = INVALID;
return;
}
_expr = expr;
_object = obj;
_concurrent = false;//concur;
_newInstance = false;
}
public boolean canCocurrent() {
return _concurrent;
}
public int state() {
return _state;
}
public long startTime() {
return _startTime;
}
public void startTime(long t) {
_startTime = t;
}
public int timesRun() {
return _hasRunTimes;
}
public void incTimesRun() {
_hasRunTimes++;
}
public boolean newInstance() {
return _newInstance;
}
public String expr() {
return _expr;
}
static final int VIRGIN = 0; //尚未运行过
static final int SCHEDULED = 1; //等待运行,已运行至少一次
static final int EXECUTING = 2; //正在运行
static final int CANCELLED = 3; //取消
static final int INVALID = 4; //取消
private long _startTime; //最近运行开始时间
private int _hasRunTimes = 0; //运行次数
private int _state = VIRGIN; //当前状态
private boolean _concurrent = true; //是否可以并发运行多实例
private boolean _newInstance = false; //是否每次运行生成新的实例
private String _expr = null; //运行时间表表达式
private Class _class = null; //运行对象类型
private ITask _object = null; //运行对象
private ArrayList _runningObjects = null;//new ArrayList(5);
public void addRunning(ITask task) {
if(task == null) return;
if(_runningObjects == null) _runningObjects = new ArrayList(5);
task.start();
_runningObjects.add(task);
}
public void delRunning(ITask task) {
if(_runningObjects != null && task != null)
_runningObjects.remove(task);
}
public int countRunning() {
if(_runningObjects == null) return 0;
for (int i = 0; i < _runningObjects.size(); i++) {
if (!((ITask) _runningObjects.get(i)).running()) {
_runningObjects.remove(i--);
}
}
return _runningObjects.size();
}
public Class getTaskClass() {
return _class;
}
public ITask getTaskObject() {
return _object;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -