ScheduleFactory実装サービス jp.ossc.nimbus.service.scheduler.KeyMappingScheduleFactoryService

jp.ossc.nimbus.service.scheduler.KeyMappingScheduleFactoryServiceは、引数で指定されたキーに関連付けられたScheduleFactoryから取得したスケジュールを提供するScheduleFactory実装サービスです。

このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。

下位サービスインタフェース用途
jp.ossc.nimbus.service.scheduler.ScheduleFactory提供するスケジュールを取得する。

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

  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. <!-- スケジュールファクトリサービス -->
  8. <service name="ScheduleFactory"
  9. code="jp.ossc.nimbus.service.scheduler.KeyMappingScheduleFactoryService">
  10. <!-- キーとスケジュールファクトリのサービス名のマッピングを設定する -->
  11. <attribute name="KeyAndScheduleFactoryServiceName">
  12. Key1=#ScheduleFactory1,
  13. Key2=#ScheduleFactory2
  14. </attribute>
  15. <!-- キーに該当するスケジュールファクトリが見つからなかった場合に使用するスケジュールファクトリのサービス名を設定する -->
  16. <attribute name="DefaultScheduleFactoryServiceName">#ScheduleFactory3</attribute>
  17. <depends>ScheduleFactory1</depends>
  18. <depends>ScheduleFactory2</depends>
  19. <depends>ScheduleFactory3</depends>
  20. </service>
  21. <!-- スケジュールファクトリサービス -->
  22. <service name="ScheduleFactory1"
  23. code="jp.ossc.nimbus.service.scheduler.SimpleScheduleFactoryService">
  24. <attribute name="ScheduleServiceNames">
  25. #Schedule1
  26. #Schedule2
  27. </attribute>
  28. <depends>Schedule1</depends>
  29. <depends>Schedule2</depends>
  30. </service>
  31. <!-- スケジュールファクトリサービス -->
  32. <service name="ScheduleFactory2"
  33. code="jp.ossc.nimbus.service.scheduler.SimpleScheduleFactoryService">
  34. <attribute name="ScheduleServiceNames">
  35. #Schedule1
  36. #Schedule3
  37. </attribute>
  38. <depends>Schedule1</depends>
  39. <depends>Schedule3</depends>
  40. </service>
  41. <!-- スケジュールファクトリサービス -->
  42. <service name="ScheduleFactory3"
  43. code="jp.ossc.nimbus.service.scheduler.SimpleScheduleFactoryService">
  44. <attribute name="ScheduleServiceNames">
  45. #Schedule1
  46. #Schedule2
  47. #Schedule3
  48. </attribute>
  49. <depends>Schedule1</depends>
  50. <depends>Schedule2</depends>
  51. <depends>Schedule3</depends>
  52. </service>
  53. <!-- スケジュール1
  54. スケジューラ起動の1秒後に1度だけ実行するスケジュール
  55. -->
  56. <service name="Schedule1"
  57. code="jp.ossc.nimbus.service.scheduler.TimerScheduleService">
  58. <attribute name="Name">Task1</attribute>
  59. <attribute name="Task">
  60. <object code="sample.task.SampleTask">
  61. <attribute name="Name">Task1</attribute>
  62. </object>
  63. </attribute>
  64. <attribute name="Delay">1000</attribute>
  65. </service>
  66. <!-- スケジュール2
  67. スケジューラ起動直後に実行され、1秒間隔で実行され続けるスケジュール
  68. -->
  69. <service name="Schedule2"
  70. code="jp.ossc.nimbus.service.scheduler.TimerScheduleService">
  71. <attribute name="Name">Task2</attribute>
  72. <attribute name="Task">
  73. <object code="sample.task.SampleTask">
  74. <attribute name="Name">Task2</attribute>
  75. </object>
  76. </attribute>
  77. <attribute name="Delay">0</attribute>
  78. <attribute name="Period">1000</attribute>
  79. </service>
  80. <!-- スケジュール3
  81. スケジューラ起動直後に実行され、1秒間隔で実行され続けるスケジュール
  82. 但し、タスクの処理時間が1.5秒かかるため、結果として1.5秒間隔で実行される。
  83. また、非同期処理用のキューを設定しているため、他のスケジュールの実行には影響を及ぼさない。
  84. -->
  85. <service name="Schedule3"
  86. code="jp.ossc.nimbus.service.scheduler.TimerScheduleService">
  87. <attribute name="Name">Task3</attribute>
  88. <attribute name="Task">
  89. <object code="sample.task.SampleTask">
  90. <attribute name="Name">Task3</attribute>
  91. <attribute name="ProcessTime">1500</attribute>
  92. </object>
  93. </attribute>
  94. <attribute name="Delay">0</attribute>
  95. <attribute name="Period">1000</attribute>
  96. <attribute name="QueueServiceName">Queue</attribute>
  97. <attribute name="DependsScheduleNames">Task1</attribute>
  98. <depends>
  99. <!-- 非同期処理用のキューサービス -->
  100. <service name="Queue"
  101. code="jp.ossc.nimbus.service.queue.DefaultQueueService"/>
  102. </depends>
  103. </service>
  104. </manager>
  105. </server>


スケジューラ/簡易スケジューラ/ScheduleFactory