这几天因为需要测试mongodb读写分离的问题,因此写了个定时查询程序,并且用到了多线程,以达到定时启动多个线程查询数据库的效果,下边代码记录备忘:
package timmer;
import java.util.Timer;
import java.util.TimerTask;
import mongoService.mongoServiceImp.AlarmServiceImpl;
import com.mongodb.DBObject;
public class StartTim {
// 从这里开始测试定时查询
public static void main(String[] args) {
Timer timer1 = new Timer();
// 在1秒后执行此任务,每次间隔5秒执行一次,
timer1.schedule(new MyTask(), 1000, 5000);
}
// java定时器要继承timerTask类
static class MyTask extends TimerTask {
AlarmServiceImpl alarmService = new AlarmServiceImpl();
// 调用定时器需要处理的业务
public void run() {
for (int i = 0; i < 3; i++) {
new Thread(new MyThread(alarmService)).start();
}
}
}
static class MyThread implements Runnable {
AlarmServiceImpl alarmService;
public MyThread(AlarmServiceImpl alarmService) {
super();
this.alarmService = alarmService;
}
public void run() {
System.out.println(Thread.currentThread().getName());
test();
}
public void test() {
System.out.println("定时器");
DBObject list = alarmService.findAlarm();
System.out.println(list);
}
}
}