ScheduleMaker実装サービス jp.ossc.nimbus.service.scheduler2.DatabaseConditionScheduleMakerService

jp.ossc.nimbus.service.scheduler2.DatabaseConditionScheduleMakerServiceは、スケジュールを作成する条件判断をSQLで行うScheduleMaker実装サービスです。

SQLの戻り値が、BOOL型trueまたはNUMBER型0以外またはCHAR型0以外の場合は、スケジュールを作成します。

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

下位サービスインタフェース用途
jp.ossc.nimbus.service.connection.ConnectionFactoryJDBCコネクションを取得する。

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

  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. <!-- ScheduleMakerサービス -->
  8. <service name="BusinessDayScheduleMaker"
  9. code="jp.ossc.nimbus.service.scheduler2.DatabaseConditionScheduleMakerService">
  10. <!-- スケジュール作成日をSQLに文字列として埋め込む場合のフォーマットを設定する -->
  11. <attribute name="DateFormat">yyyyMMdd</attribute>
  12. <!-- SQLを設定する -->
  13. <attribute name="Query">
  14. SELECT COUNT(1) FROM BUSINESSDAY WHERE DAY = ?
  15. </attribute>
  16. <!-- ConnectionFactoryサービスのサービス名を設定する -->
  17. <attribute name="ConnectionFactoryServiceName">#ConnectionFactory</attribute>
  18. <depends>ConnectionFactory</depends>
  19. </service>
  20. <!-- BeanFlowInvokerを生成するBeanFlowInvokerFactoryサービス -->
  21. <service name="BeanFlowInvokerFactory"
  22. code="jp.ossc.nimbus.service.beancontrol.DefaultBeanFlowInvokerFactoryService">
  23. <attribute name="DirPaths">flows</attribute>
  24. <attribute name="BeanFlowInvokerAccessClass">jp.ossc.nimbus.service.beancontrol.BeanFlowInvokerAccessImpl2</attribute>
  25. <attribute name="Validate">true</attribute>
  26. </service>
  27. <!-- ScheduleManagerサービス -->
  28. <service name="ScheduleManager"
  29. code="jp.ossc.nimbus.service.scheduler2.DefaultScheduleManagerService">
  30. <attribute name="ScheduleMasterServiceNames">
  31. #ScheduleMaster1
  32. #ScheduleMaster2
  33. </attribute>
  34. <attribute name="ScheduleMakerTypeMapping">
  35. 営業日=#BusinessDayScheduleMaker
  36. </attribute>
  37. <attribute name="PersistDir">./schedule</attribute>
  38. <depends>SecondBusinessDayScheduleMaker</depends>
  39. <depends>
  40. <!-- スケジュールマスタ1
  41. 08:00:00にFlow1を実行するスケジュール
  42. -->
  43. <service name="ScheduleMaster1"
  44. code="jp.ossc.nimbus.service.scheduler2.DefaultScheduleMaster">
  45. <attribute name="Id">Schedule1</attribute>
  46. <attribute name="TaskName">Flow1</attribute>
  47. <attribute name="StartTime">// 08:00:00 000</attribute>
  48. <attribute name="ScheduleType">営業日</attribute>
  49. </service>
  50. </depends>
  51. <depends>
  52. <!-- スケジュールマスタ2
  53. スケジュールマスタ1の終了を待って、08:00:00にFlow2を実行するスケジュール
  54. -->
  55. <service name="ScheduleMaster2"
  56. code="jp.ossc.nimbus.service.scheduler2.DefaultScheduleMaster">
  57. <attribute name="Id">Schedule2</attribute>
  58. <attribute name="TaskName">Flow2</attribute>
  59. <attribute name="StartTime">// 08:00:00 000</attribute>
  60. <attribute name="Input">100</attribute>
  61. <attribute name="Depends">Schedule1</attribute>
  62. <attribute name="ScheduleType">毎日</attribute>
  63. </service>
  64. </depends>
  65. </service>
  66. </manager>
  67. </server>


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