Quartzは初めてで、SQLServerExpressを使用するクライアント向けのサービスを使用してSQLServerでスクリプトをスケジュールするために使用したいと考えています。
ユーザーが実行するタスクをスケジュールできるようにする必要があります。たとえば、特定の日付から2週間ごとに実行する必要があります。例:StartDate = 1 / Jan / 2013 12:00 PM(火曜日)そして14日ごとに繰り返します。
ジョブの設定には、StartTime(日時)、IntervalUnit(秒、分、時間、日、週、年)、およびRepeatsEvery(開始日以降に起動する間隔の数)があります。
例:StartDate = "1 / JAN / 201312:00PM"およびIntervalUnit="DAY"およびRepeatsEvery=14の設定では、第2火曜日の12:00PMにジョブが起動されます。StartDateがすでに過ぎている場合は、次の開始日にジョブを起動する必要があります。例:今日(2013年1月18日)にサービスを開始した場合、次の開始日は2013年1月29日12:00PMになります。
カレンダートリガーを使用して、Quartzでこれを機能させる方法がわかりません。これはQuartzに組み込まれているものですか、それとも起動時に新しいStartTimeを計算する必要がありますか?
新しいStartTimeを計算する必要があると仮定すると、これに組み込まれた関数または適切なショートカットがありますか、それとも各IntervalUnitにこれと同様の関数が必要ですか?
'Days
Dim diff As Integer
diff = Now.Subtract(.StartTime).TotalDays
Dim offset As Integer
offset = .RepeatsEvery - (diff Mod .RepeatsEvery)
offset = Now.AddDays(offset).Subtract(.StartTime).TotalDays 'Get the days from Start t preserve time of day
Start = .StartTime.AddDays(offset)