如果你想简单地使用Timer,我会做这样的事情:
public class TestClass {
public long myLong = 1234;
public static void main(String[] args) {
final TestClass test = new TestClass();
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
test.doStuff();
}
}, 0, test.myLong);
}
public void doStuff(){
//do stuff here
}
}
抱歉标识不好。
另外,如果你需要安排代码的执行,看看Guava Services,因为它可以真正让你的代码更清晰,并抽象出相当多的创建线程,调度等样板。
顺便说一句,我没有费心生成随机数等,但我认为你可以弄清楚如何包含该部分。我希望这足以让你走上正确的轨道。
根据记录,如果您要使用番石榴,它将看起来像这样:
class CrawlingService extends AbstractScheduledService {
@Override
protected void runOneIteration() throws Exception {
//run this alot
}
@Override
protected void startUp() throws Exception {
//anything you need to step up
}
@Override
protected void shutDown() throws Exception {
//anything you need to tear down
}
@Override
protected Scheduler scheduler() {
return new CustomScheduler() {
@Override
protected Schedule getNextSchedule() throws Exception {
long a = 1000; //number you can randomize to your heart's content
return new Schedule(a, TimeUnit.MILLISECONDS);
}
};
}
}
你只需创建一个名为new CrawlingService.start()的主节点即可。就是这样。