Java EE アプリケーション サーバー (GlassFish) のタイマー サービスを使用しており、n か月ごと (たとえば 2 か月ごと) に実行されるタスクをスケジュールしたいと考えています。私は使用しようとしました:
scheduleExpression.month(*/2)
. しかし、私はこの例外を受け取ります:
月の値が無効です: */2
Java EE アプリケーション サーバー (GlassFish) のタイマー サービスを使用しており、n か月ごと (たとえば 2 か月ごと) に実行されるタスクをスケジュールしたいと考えています。私は使用しようとしました:
scheduleExpression.month(*/2)
. しかし、私はこの例外を受け取ります:
月の値が無効です: */2
仕様によると、間隔は、秒、分、および時間の属性に対してのみ設定できます。
ただし、次を使用できます。
@Schedule(month="2,4,6,8,10,12")
タスクを月 2 (2 月)、月 4 (4 月) などに実行するには...
それ以外の場合は、たとえば
@Schedule(dayOfMonth="1")
これにより、毎月 1 日にタスクが実行されます。
問題を回避するには、ユーザーにこれらの値 (1、2、3、4、6、12) のいずれかを入力させる必要があると思います。したがって、タスクが実行される月のリストを決定できます。