[Seasar-user:15391] Re: 【S2Chronos】標準トリガーについて

黒川博之 [E-MAIL ADDRESS DELETED]
2008年 8月 13日 (水) 18:25:12 JST


加藤様

>> ・CronTriggerを拡張し、時間指定範囲が出来るトリガー
> これは、CronTriggerの有効時間範囲を既定したいということでしょうか?
そうですね。

@CronTrigger(expression = "0 */1 * * * ?")
だと、24時間365日、1分間隔で動いてしまいますが
実際の業務では、例えば9-17時だけ動いてくれればいい、
それ以外は動かれては困る・・・
という時間範囲指定の要件は多いと思いました。

動いて問題無い場合でも、不必要な時間帯でのジョブは
サーバーへの負荷にもなってしまいますしね。
ログもうっとおしいと思います。


>> ・複数の日時指定が出来るトリガー
> 実はこれが一番ほしいんですよw
> これがないと定期時間間隔でのポーリング実装になりがちなんですよね。
> ということで、CompositeパターンでChainTriggerクラスを用意して、複数のト
> リガーを登録できるようにしたいと思います。
> ただ、ダイナミックトリガーはよいのですが、アノテーションの場合の表記をど
> うしたらよいかということで優先度が低くなっていました。
> 現状の仕様ですと、
>
> @ChainTrigger(ここに複数のトリガーアノテーションを記述したい)
>
> ということで、妙案があればアドバイスをお願いしますw
これも試作トリガーを作ってからMLに質問しようとしましたが
どう実装すればいいかすぐに思いつかなかったので、とりあえず
時間範囲指定だけ作って質問しました。^^;

ただ、アノテーションに拘る必要は無いのかな?とは思います。
実際の実務では、スケジューリングというのは頻度の程度こそあれ
メンテナンスが必要な場合があると思います。

そうなると、アノテーション指定だとプログラムの変更となってしまい
リリース作業等が発生します。
Cool deployだとサーバー再起動も必要です。
なかなか停止出来ないシステムの場合、これでは柔軟性が無いです。

なので、私もまだS2Chronosを業務に持ち込んでいるわけではないですが
今後使う時は、スケジュール情報をDBや設定ファイルに持って、それを
メンテナンス出来るように実装すべきと考えています。

となると、必然的にダイナミックトリガーを選択する事になります。

*こういった事情から、S2Chronosを導入された方は、アノテーションよりもダイナミックトリガー
の方を使用されている方が多いんじゃないかなー?と勝手に思っています。

アノテーションを作るのであれば
@ChainTrigger("2008/08/13 18:30:00, 2008/08/13 18:35:00, 2008/08/13 
18:40:00, 2008/08/13 18:45:00, 2008/08/13 18:50:00")

みたいな感じでしょうが、多いと数十〜数百もあり得るので、実コーディング上
不可能に近いですね^^;
と考えると、やはりこの場合はアノテーションは不要なのかなと感じます。

> ありがとうございます。
> これは、もしかしたらCronTriggerにあってもよい機能かもしれませんが、いず
> れにしてもとり込む方向で検討したいと思います。
ありがとうございます!
何か他にもアイディアが浮かんだら、またMLで報告したいと思います。

よろしくお願いします。

----- Original Message ----- 
From: "Junichi Kato" <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Sent: Wednesday, August 13, 2008 5:35 PM
Subject: [Seasar-user:15388] Re: 【S2Chronos】標準トリガーについて


> 黒川さん、
> 加藤です。
>
> こんにちは。
>
>
> 黒川博之 さんは書きました:
>> 黒川です。
>> おはようございます。
>>
>> S2Chronosの標準で、いつくかのトリガーが用意されていると思いますが
>> その中で、「CronTrigger」がありますが、このトリガーだと時間の範囲指定が
>> 出来ないと思います。
>>
>> また、「TimedTrigger」では、指定出来る日時は1つだけと思います。
>>
>> そこで、、、
>> ・CronTriggerを拡張し、時間指定範囲が出来るトリガー
> これは、CronTriggerの有効時間範囲を既定したいということでしょうか?
>
>> ・複数の日時指定が出来るトリガー
> 実はこれが一番ほしいんですよw
> これがないと定期時間間隔でのポーリング実装になりがちなんですよね。
> ということで、CompositeパターンでChainTriggerクラスを用意して、複数のト
> リガーを登録できるようにしたいと思います。
> ただ、ダイナミックトリガーはよいのですが、アノテーションの場合の表記をど
> うしたらよいかということで優先度が低くなっていました。
> 現状の仕様ですと、
>
> @ChainTrigger(ここに複数のトリガーアノテーションを記述したい)
>
> ということで、妙案があればアドバイスをお願いしますw
>
>>
>> これらのようなトリガーは、比較的需要があると思うのですが
>> 上記のようなトリガーを標準で組み込む予定は無いでしょうか?
>> (他にもあるかもしれませんね)
>>
>>
>> 試しに、CronTriggerを継承し、時間指定が出来るクラスを作成してみたの
>> で、添付します。
>> *コーディングの良し悪しは別として、意図した通りには動いてくれています。
>
> ありがとうございます。
> これは、もしかしたらCronTriggerにあってもよい機能かもしれませんが、いず
> れにしてもとり込む方向で検討したいと思います。
>
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user 



Seasar-user メーリングリストの案内