私のサービスapiは、ジョブが実行されるために、クォーツのジョブと月の開始日を取ります。 内部的には、これをcron式に変換してクォーツで保存します。cronトリガ用のクォーツの夏時間のユーザタイムゾーンを処理する方法は?
たとえば、PSTのユーザーは、今日(2017年11月3日)ジョブリクエストを次のように送信します。
{
"start": "2017-11-03T18:00:00-07:00",
"dayOfMonth" : 15
}
ここで、2017-11-03から開始して、午後6時に毎月15日に発生するジョブをスケジュールしたいとします。最初の石英は2017-11-15年になるでしょう。 これは上記の要求がcron式0 0 18 15 * ? *
に変換される方法です。これは正しいです。 QRTZ_CRON_TRIGGERSテーブルは次のようになります。
あなたが気づくと、time_zone_idはGMT-07として保存される:00、しかし、夏時間がキックに一度11月5日に、それはGMT-08でなければならない:00。さもなければ私の石英の仕事は一時間早く消火するでしょう。私はnextFireTimeを照会するとき、実際には、私たちはどのように行う確かである1510794000000 タイムゾーンアメリカ/ロサンゼルス水曜日2017年11月15日17時00分00秒(午後)(PST)
を得るのですかこのtime_zone_idの問題を処理しますか?
P.S:で提供されるpreserveHourOfDayAcrossDaylightSavings
の概念を持たないcronTriggerを使用しています。