ScheduleExecutor実装サービス jp.ossc.nimbus.service.scheduler2.BeanFlowScheduleExecutorService

jp.ossc.nimbus.service.scheduler2.BeanFlowScheduleExecutorServiceは、業務フローを使ってスケジュールされた処理を実行するScheduleExecutor実装サービスです。

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

下位サービスインタフェース用途
jp.ossc.nimbus.service.scheduler2.ScheduleManagerスケジュールの状態を変更する。
jp.ossc.nimbus.service.beancontrol.BeanFlowInvokerFactory業務フローを取得する。

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

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


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