[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 メーリングリストの案内