私がクォーツscheduler
でshutdown()
メソッドを呼び出さないとどうなりますか?私がシャットダウンしないとどうなりますか()クォーツスケジューラ
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
JobDetail job = newJob(NotificationCronJob.class).withIdentity("notificationJob1", "notificationGroup1").build();
CronTrigger cronTriggerSunday = newTrigger().withIdentity("notificationTrigger1", "notificationGroup1")
.withSchedule(cronSchedule(Config.SUNDAY_NOTIFY))
.forJob(job)
.build();
CronTrigger cronTriggerMonday = newTrigger().withIdentity("notificationTrigger2", "notificationGroup1")
.withSchedule(cronSchedule(Config.MONDAY_NOTIFY))
.forJob(job)
.build();
CronTrigger cronTriggerTuesday = newTrigger().withIdentity("notificationTrigger3", "notificationGroup1")
.withSchedule(cronSchedule(Config.TUESDAY_NOTIFY))
.forJob(job)
.build();
CronTrigger cronTriggerWednesday = newTrigger().withIdentity("notificationTrigger4", "notificationGroup1")
.withSchedule(cronSchedule(Config.WEDENSDAY_NOTIFY))
.forJob(job)
.build();
CronTrigger cronTriggerThursday = newTrigger().withIdentity("notificationTrigger5", "notificationGroup1")
.withSchedule(cronSchedule(Config.THURSDAY_NOTIFY))
.forJob(job)
.build();
CronTrigger cronTriggerFriday = newTrigger().withIdentity("notificationTrigger6", "notificationGroup1")
.withSchedule(cronSchedule(Config.FRIDAY_NOTIFY))
.forJob(job)
.build();
CronTrigger cronTriggerSaturday = newTrigger().withIdentity("notificationTrigger7", "notificationGroup1")
.withSchedule(cronSchedule(Config.SATURDAY_NOTIFY))
.forJob(job)
.build();
scheduler.scheduleJob(job, cronTriggerSunday);
scheduler.scheduleJob(cronTriggerMonday);
scheduler.rescheduleJob(cronTriggerMonday.getKey(), cronTriggerMonday);
scheduler.scheduleJob(cronTriggerTuesday);
scheduler.scheduleJob(cronTriggerWednesday);
scheduler.scheduleJob(cronTriggerThursday);
scheduler.scheduleJob(cronTriggerFriday);
scheduler.scheduleJob(cronTriggerSaturday);
scheduler.start();
各Config.DAY
は例0 0 9 ? * 1
実行フォアのcron式は各日曜日午前9時です:
は、私は一日の異なる時間に毎日実行する必要があります仕事をしています。
問題はスケジューラーをシャットダウンしてもジョブが実行されないため、起動して実行するだけです。しかし、それはいくつかの種類のスレッド問題のメモリリークやメモリリークの原因になるかどうか、私はこれが十分な解決策であるかどうかわからないことに懸念しています。次のように私の石英プロパティは次のとおりです。私は最終的に達成するために必要なもの
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.MSSQLDelegate
org.quartz.jobStore.dataSource = myDS
org.quartz.dataSource.myDS.driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
org.quartz.dataSource.myDS.URL = jdbc:sqlserver://localhost;databaseName=myDB
org.quartz.dataSource.myDS.user = myUser
org.quartz.dataSource.myDS.password = myPassword
org.quartz.dataSource.myDS.maxConnections = 5
org.quartz.jobStore.tablePrefix = QRTZ_
は、定義された時間にジョブを実行し、スケジューリングは、アプリケーションを再起動せずに変更可能でなければなりませんアプリケーションです。
ありがとう@hiroyukik次にスケジューラを開始して何が起こるかを見てみましょう。 – TheLearner