java 任务调度问题
用Quartz 怎样实现当本周期任务未运行完成下一周期不能启动?
[解决办法]
给个全局boolean变量,判断执行完之后为true,否则为false
[解决办法]
设置
<property name="concurrent" value="false" />
[解决办法]
可以用队列的方式
Quartz不直接执行任务,而是把任务扔到一个队列中,用一个线程来执行队列的任务,任务执行结束,从队列中删除任务
[解决办法]
Quartz是spring下面的一个子框架,我现在用的是JDK自带的TIMER,发给你参考一下啊。
import java.io.IOException;
import java.sql.Connection;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;
public class Timeer {
/**
* 定时器
* @return
*/
Calendar ca=null;
Calendar ca1=null;
static Gui gui = new Gui();
static Connection con=null;
Bufferreader bff= new Bufferreader("c:\\king.txt");
public void breakTimer()
{
/**
* 终止定时器
* @return
*/
Timer timer1=new Timer();
timer1.cancel();
}
public void Time() throws IOException
{
Timer timer=new Timer();
String time = bff.getTimeA();
ca=Calendar.getInstance();
ca.add(Calendar.MILLISECOND, Integer.parseInt(time));
timer.schedule(new TimerTask()
{
public void run() {
XmlSend textjdbc=new XmlSend();
try {
textjdbc.sendTWO();
textjdbc.sendONE();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Time();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}, ca.getTime());
}
void getcon() throws IOException{
@SuppressWarnings("unused")
final Connection con=null;//获取Connection
Time();
}
}