QueueHandlerContainer実装サービス jp.ossc.nimbus.service.queue.DistributedQueueHandlerContainerService

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キューへのエントリを分流させるサービス。

以下に簡単なサービス定義を示します。

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE server PUBLIC
  3. "-//Nimbus//DTD Nimbus 1.0//JA"
  4. "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
  5. <server>
  6. <manager>
  7. <!-- 並列非同期処理を行うQueueHandlerサービスのコンテナとなるQueueHandlerContainerサービス -->
  8. <service name="QueueHandlerContainer"
  9. code="jp.ossc.nimbus.service.queue.DistributedQueueHandlerContainerService">
  10. <!-- 分流を行うDistributedQueueSelectorサービスのサービス名を設定する -->
  11. <attribute name="DistributedQueueSelectorServiceName">#DistributedQueueSelector</attribute>
  12. <!-- 非同期処理を行うQueueHandlerサービスのサービス名を設定する -->
  13. <attribute name="QueueHandlerServiceName">#QueueHandler</attribute>
  14. <depends>DistributedQueueSelector</depends>
  15. <depends>QueueHandler</depends>
  16. </service>
  17. <!-- 分流を行うDistributedQueueSelectorサービス -->
  18. <service name="DistributedQueueSelector"
  19. code="jp.ossc.nimbus.service.queue.SimpleDistributedQueueSelectorService">
  20. <!-- 分流するキューの数を設定する -->
  21. <attribute name="DistributedSize">5</attribute>
  22. </service>
  23. <!-- 非同期処理を行うQueueHandlerサービス -->
  24. <service name="QueueHandler"
  25. code="SampleQueueHandlerService"/>
  26. <!-- 非同期処理の応答を返すためのQueueサービス -->
  27. <service name="ResponseQueue"
  28. code="jp.ossc.nimbus.service.queue.DefaultQueueService"
  29. instance="factory">
  30. </manager>
  31. </server>


キュー/QueueHandlerContainer