ScheduleManager実装サービス jp.ossc.nimbus.service.scheduler2.DefaultScheduleManagerService

jp.ossc.nimbus.service.scheduler2.DefaultScheduleManagerServiceは、スケジュールマスタをサービス定義で設定し、スケジュールをメモリ中で管理し、ファイルに保存するScheduleManager実装サービスです。

スケジュールをファイルで保存するため、分散環境下で複数のScheduleManagerがスケジュールを共有する事を前提に設計されていません。
したがって、この実装は、スケジューラのクラスタ化をサポートしません。

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

下位サービスインタフェース用途
jp.ossc.nimbus.service.scheduler2.ScheduleMakerスケジュールマスタからスケジュールを作成する。
jp.ossc.nimbus.service.sequence.SequenceスケジュールIDを発行する。

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

  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. <!-- ScheduleManagerサービス -->
  8. <service name="ScheduleManager"
  9. code="jp.ossc.nimbus.service.scheduler2.DefaultScheduleManagerService">
  10. <attribute name="ScheduleMasterServiceNames">
  11. #ScheduleMaster1
  12. #ScheduleMaster2
  13. #ScheduleMaster3
  14. #ScheduleMaster4
  15. </attribute>
  16. <attribute name="PersistDir">./schedule</attribute>
  17. <depends>
  18. <!-- スケジュールマスタ1
  19. 08:00:00にFlow1を実行するスケジュール
  20. -->
  21. <service name="ScheduleMaster1"
  22. code="jp.ossc.nimbus.service.scheduler2.DefaultScheduleMaster">
  23. <attribute name="Id">Schedule1</attribute>
  24. <attribute name="TaskName">Flow1</attribute>
  25. <attribute name="StartTime">// 08:00:00 000</attribute>
  26. </service>
  27. </depends>
  28. <depends>
  29. <!-- スケジュールマスタ2
  30. スケジュールマスタ1の終了を待って、08:00:00にFlow2を実行するスケジュール
  31. -->
  32. <service name="ScheduleMaster2"
  33. code="jp.ossc.nimbus.service.scheduler2.DefaultScheduleMaster">
  34. <attribute name="Id">Schedule2</attribute>
  35. <attribute name="TaskName">Flow2</attribute>
  36. <attribute name="StartTime">// 08:00:00 000</attribute>
  37. <attribute name="Input">100</attribute>
  38. <attribute name="Depends">Schedule1</attribute>
  39. </service>
  40. </depends>
  41. <depends>
  42. <!-- スケジュールマスタ3
  43. スケジュールマスタ2の終了を待って、08:01:00から08:02:00まで5秒間隔にFlow3を実行するスケジュール
  44. -->
  45. <service name="ScheduleMaster3"
  46. code="jp.ossc.nimbus.service.scheduler2.DefaultScheduleMaster">
  47. <attribute name="Id">Schedule3</attribute>
  48. <attribute name="TaskName">Flow3</attribute>
  49. <attribute name="StartTime">// 08:01:00 000</attribute>
  50. <attribute name="EndTime">// 08:02:00 000</attribute>
  51. <attribute name="RepeatInterval">5000</attribute>
  52. <attribute name="Depends">Schedule2</attribute>
  53. </service>
  54. </depends>
  55. <depends>
  56. <!-- スケジュールマスタ4
  57. スケジュールマスタ1とスケジュールマスタ3の終了を待って、08:00:00から08:03:00までFlow4の結果でリトライを指示される限り、10秒間隔でFlow4を実行するスケジュール
  58. 08:03:00に達しても、リトライを指示された場合は、エラー終了する
  59. -->
  60. <service name="ScheduleMaster4"
  61. code="jp.ossc.nimbus.service.scheduler2.DefaultScheduleMaster">
  62. <attribute name="Id">Schedule4</attribute>
  63. <attribute name="TaskName">Flow4</attribute>
  64. <attribute name="StartTime">// 08:00:00 000</attribute>
  65. <attribute name="Depends">Schedule1,Schedule3</attribute>
  66. <attribute name="RetryInterval">10000</attribute>
  67. <attribute name="RetryEndTime">// 08:03:00 000</attribute>
  68. </service>
  69. </depends>
  70. </service>
  71. </manager>
  72. </server>


スケジューラ/高機能スケジューラ/ScheduleManager