如何在Java中的某个特定时间间隔之后调用方法

时间:2011-07-28 11:58:15

标签: java timer

以下是用例:

我正在使用Java(使用Spring)

一旦用户(通过网络应用程序)确认订阅,我想在30分钟后向他发送电子邮件。

现在怎么做?我需要消息代理吗?或者像ScheduledExecutorService这样的东西? 我需要某种排队吗?

请告知。

4 个答案:

答案 0 :(得分:4)

可以查看quartz scheduler

顺便提一下,一个常见的策略是每30分钟左右批量发送大量所有待处理的邮件。 Quartz也可以帮助你做到这一点。

答案 1 :(得分:2)

您可以使用Quartz Scheduler。它相当容易使用。你可以每周或每30分钟安排一些事情,或基本上你想要的任何事情。

答案 2 :(得分:1)

为Timer

创建一个对象
 private Timer myTimer;
主要方法

中的

myTimer = new Timer();
    myTimer.schedule(new TimerTask() {
        @Override
        public void run() {
           //your method
        }

    }, 0, 200);

答案 3 :(得分:0)

发送邮件后线程不会死亡。配置Quartz时,将自动创建一个新线程,并在指定的时间间隔内执行分配的任务。否则你也使用Timer类。这是非常容易使用。

    Timer timer = new Timer(); // Get timer

    long delay = 30 * 60 * 1000; // 3o min delay

    // Schedule the two timers to run with different delays.
    timer.schedule(new MyTask(), 0, delay);

...................



class MyTask extends TimerTask {

    public void run() {
        // business logic
        // send mail here
    }
}