[Seasar-user:19983] Re: [S2Chronos] タスクインスタンスの動的追加
Junichi Kato
[E-MAIL ADDRESS DELETED]
2010年 7月 17日 (土) 20:39:12 JST
瀧口様
加藤です。
以下の考え方でよいと思います。
よろしくお願いいたします。
2010年7月17日8:34 Hiroyoshi Takiguchi <[E-MAIL ADDRESS DELETED]>:
> 加藤様
> 瀧口です。
>
> お忙しい所対応していただき有難うございます。
>
> ご回答頂いた内容から以下のようにしようと思います。
> 認識違いがあれば、御指摘ください。
>
> (S2Chronosで複数の対象を監視する場合)
>
> 監視タスククラスをひとつ作り、S2Chronosに@[E-MAIL ADDRESS DELETED]
> で登録します。
> 監視タスクの中で独自にスレッドを立てて監視処理を行います。
> 個々の監視処理の遅れが全体に影響しない様にするため、
> スレッドの終了とタスクの終了は非同期とし、
> 定期的に実行されるタスクの処理の中に、スレッドのライフサイクルを管
> 理するロジックを実装しようと思います。
>
> On 2010/07/17, at 7:14, Junichi Kato <[E-MAIL ADDRESS DELETED]> wrote:
>
>> 瀧口様
>> 加藤です。
>>
>> 回答が遅れてすみません。
>>
>>
>>> 1. 監視対象は動的に追加されます。
>>> 2. 監視に関する処理はどれも同じなので、単一のTaskクラスで
>>> 実装可能です。
>>> 3. それぞれの監視対象に関する処理は並列で動作させます。
>>> 4. サーバへの負荷を軽減させるため、開始時間を分散させます。
>>
>> 1は、スケジューラの稼働中にタスクを新規に登録するには、S2
>> のコンポーネントでかつ、@TaskでautoScheduleをfalse
>> にした状態にしておき、addTask(Hoge.class)すれば実現可能で
>> す。
>> S2Chronosのタスククラス(コンポーネント)はシングルト
>> ンを想定しているので、コンポーネントのクラスを渡すことになりま
>> す。
>>
>> 2.については、S2Chronos側で制限する仕様はありません。Task
>> の実装次第です。
>>
>> 3.については、並列処理はタスクのクラスに@CloneTaskで並列処
>> 理を簡単に実行できますが、自分でスレッドを起こされても可能です。
>>
>> 4.については、タスクに対してはトリガーで実行時間を指定するだけで
>> す。開始時間を制御したければそこで工夫するしかありません。タスク
>> は実行中は同じタスクを2重起動させることはできません。
>>
>> あまり、柔軟なことはできないので、Taskクラスから先の実装で
>> 工夫されたほうがよいと思います。
>>
>> 簡単ですが、よろしくお願いいたします。
>>
>> 2010年7月11日13:54 <[E-MAIL ADDRESS DELETED]>:
>>> お世話になっております。瀧口と申します。
>>>
>>> S2Chronosを利用させていただいて運用管理系のシステムを作成してい
>>> ます。
>>>
>>> S2Chronosを使って以下を実現したいのですが、その方法が思つきま
>>> せん。
>>> アドバイスしていただけないでしょうか?
>>>
>>> 監視システムのようなものと仮定します。
>>>
>>> 1. 監視対象は動的に追加されます。
>>> 2. 監視に関する処理はどれも同じなので、単一のTaskクラスで
>>> 実装可能です。
>>> 3. それぞれの監視対象に関する処理は並列で動作させます。
>>> 4. サーバへの負荷を軽減させるため、開始時間を分散させます。
>>>
>>> 監視対象を追加する処理の中で
>>> Schedulerに対してaddTaskして監視タスクを追加するイメージ
>>> でいました。
>>>
>>> public Scheduler scheduler
>>>
>>> pubilc void addTarget(Target target) {
>>> //省略
>>> WatchTask watchTask = WatchTask.newTask(target);
>>> sheduler.addTask(watchTask);
>>> }
>>>
>>> しかしながら、addTaskの引数はClassなので
>>> そもそも思想が違うのだな。と思っています。
>>>
>>> このような場合、どういった実装が考えられますでしょうか?
>>>
>>> 以上、よろしくお願いたします。
>>> _______________________________________________
>>> Seasar-user mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>>
>>>
>>
>>
>>
>> --
>> /**
>> * name : Junichi Kato
>> * email : [E-MAIL ADDRESS DELETED]
>> *
>> * blog : http://d.hatena.ne.jp/j5ik2o/
>> *
>> * commiting projects :
>> * http://jiemamy.org/
>> * http://s2chronos.sandbox.seasar.org/
>> * http://s2config.sandbox.seasar.org/
>> */
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
--
/**
* name : Junichi Kato
* email : [E-MAIL ADDRESS DELETED]
*
* blog : http://d.hatena.ne.jp/j5ik2o/
*
* commiting projects :
* http://jiemamy.org/
* http://s2chronos.sandbox.seasar.org/
* http://s2config.sandbox.seasar.org/
*/
Seasar-user メーリングリストの案内