1

毎日決まった時間にメールを送信するようにスケジュールを組まなければならないのですが、経験者の意見が欲しいです。私が知りたいのは、Quartz Scheduler を使用して、これがこの種のことを行うための正しい (最善の) 方法であるかどうかです。

# コード

    public static void startScheduler(){
        SchedulerFactory sf = new StdSchedulerFactory();
        try {
            Scheduler sched = sf.getScheduler();

            JobDetail job = newJob(SendDocumentsMailJob.class)
                .withIdentity("sendMailJob", "group1")
                .build();

            Date startTime = todayAt(6,0,0);

            SimpleTrigger trigger = newTrigger() 
                .withIdentity("everyDayAt6oClock", "group1")
                .startAt(startTime)
                .withSchedule(simpleSchedule()
                    .withIntervalInHours(24) // is this correct?
                    .repeatForever())
                .build();

            sched.scheduleJob(job,trigger);

            sched.start();
            System.out.println("Starting at: "+new Date());
            System.out.println("Next trigger fires at: "+startTime);

            // sched.shutdown(); // is this correct?

        }catch (SchedulerException ex) { ex.printStackTrace();} 
        //catch (InterruptedException ex) { ex.printStackTrace();} 
        catch (Exception ex) { ex.printStackTrace();} 
    }

毎日の間隔を設定する方法が見つからなかったので、使用しました: withIntervalInHours(24)、それは正しいですか?

スケジューラは無期限に実行されるため、 shutdown()を呼び出す必要はありませんよね?

ありがとう、

4

1 に答える 1