我编写了一个代码,用于向正常工作的用户发送电子邮件。 但有了这个,我想添加一个计时器,通过在特定的时间间隔设置它自动发送给用户。
所以需要帮助才能知道如何做到这一点..
答案 0 :(得分:1)
您可以尝试类似于此的构造:
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
}
}
答案 1 :(得分:0)
现代的方法是使用ScheduledExecutorService
,这是Joshua Bloch在“Effective Java”中推荐的:
final int initialDelay = 0; // the initial delay in minutes (or whatever you specify below)
final int period = 5; // the period in minutes (...)
ScheduledExecutorService ex = Executors.newSingleThreadScheduledExecutor();
ex.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
sendEmail();
}
}, initialDelay, period, TimeUnit.MINUTES);
// or, with Java 8:
ex.scheduleAtFixedRate(() -> sendEmail(), initialDelay, period, TimeUnit.MINUTES);
// when finished:
ex.shutdown();
请参阅ScheduledExecutorService
的javadoc:http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html