nimbus (1.2.4) | 2018-01-25 20:02 |
nimbus-sample (1.2.4) | 2018-01-26 17:06 |
jp.ossc.nimbus.service.queue.DistributedQueueHandlerContainerServiceは、キューを分流させて並列で非同期処理を実現するQueueHandlerContainer実装サービスです。
分流された各キュー毎に処理スレッドが1つずつ紐付くため、同じキューに分流されると直列に処理され、FIFOで処理が行われる事が保証される。
このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。
下位サービスインタフェース | 用途 |
jp.ossc.nimbus.service.queue.Queue | 非同期処理要求を受け付ける内部キュー。 |
jp.ossc.nimbus.service.queue.QueueHandler | 非同期処理を行うサービス。 |
jp.ossc.nimbus.service.queue.DistributedQueueSelector | キューへのエントリを分流させるサービス。 |
以下に簡単なサービス定義を示します。
- <?xml version="1.0" encoding="Shift_JIS"?>
- <!DOCTYPE server PUBLIC
- "-//Nimbus//DTD Nimbus 1.0//JA"
- "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
- <server>
- <manager>
- <!-- 並列非同期処理を行うQueueHandlerサービスのコンテナとなるQueueHandlerContainerサービス -->
- <service name="QueueHandlerContainer"
- code="jp.ossc.nimbus.service.queue.DistributedQueueHandlerContainerService">
- <!-- 分流を行うDistributedQueueSelectorサービスのサービス名を設定する -->
- <attribute name="DistributedQueueSelectorServiceName">#DistributedQueueSelector</attribute>
- <!-- 非同期処理を行うQueueHandlerサービスのサービス名を設定する -->
- <attribute name="QueueHandlerServiceName">#QueueHandler</attribute>
- <depends>DistributedQueueSelector</depends>
- <depends>QueueHandler</depends>
- </service>
- <!-- 分流を行うDistributedQueueSelectorサービス -->
- <service name="DistributedQueueSelector"
- code="jp.ossc.nimbus.service.queue.SimpleDistributedQueueSelectorService">
- <!-- 分流するキューの数を設定する -->
- <attribute name="DistributedSize">5</attribute>
- </service>
- <!-- 非同期処理を行うQueueHandlerサービス -->
- <service name="QueueHandler"
- code="SampleQueueHandlerService"/>
- <!-- 非同期処理の応答を返すためのQueueサービス -->
- <service name="ResponseQueue"
- code="jp.ossc.nimbus.service.queue.DefaultQueueService"
- instance="factory">
- </manager>
- </server>