1.先看下Timer和TimerTask
package com.timerTest;
import java.util.Timer;
import java.util.TimerTask;
public class T {
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new MyTask(), 1000, 2000);
}
}
class MyTask extends TimerTask {
@Override
public void run() {
try{
System.out.println("Hello!");
}catch{
//处理异常
}
}
}
2.SmartFoxServer中的计时器与Timer大体相同,具体用法如下:
package com.server;
import com.smartfoxserver.bitswarm.sessions.ISession;
import com.smartfoxserver.v2.SmartFoxServer;
import com.smartfoxserver.v2.core.SFSEventType;
import com.smartfoxserver.v2.entities.data.ISFSObject;
import com.smartfoxserver.v2.entities.data.SFSObject;
import com.smartfoxserver.v2.extensions.SFSExtension;
public class Server extends SFSExtension {
@Override
public void init() {
SmartFoxServer sfs = SmartFoxServer.getInstance();
//超时监听
sfs.getTaskScheduler().scheduleAtFixedRate(new TimeMonitorRunner(), 0, 2, TimeUnit.SECONDS);//0秒开始,每间隔2秒执行一次
}
/*
* 时间监听类
*/
class TimeMonitorRunner implements Runnable{
@Override
public void run() {
try{
trace("Hello!");
}catch{
//处理异常
}
}
}
}
注意:必须捕获异常,不然会导致定时器停止运行