nimbus (1.2.4) | 2018-01-25 20:02 |
nimbus-sample (1.2.4) | 2018-01-26 17:06 |
jp.ossc.nimbus.service.scheduler2.DatabaseConditionScheduleMakerServiceは、スケジュールを作成する条件判断をSQLで行うScheduleMaker実装サービスです。
SQLの戻り値が、BOOL型trueまたはNUMBER型0以外またはCHAR型0以外の場合は、スケジュールを作成します。
このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。
下位サービスインタフェース | 用途 |
jp.ossc.nimbus.service.connection.ConnectionFactory | JDBCコネクションを取得する。 |
以下に簡単なサービス定義を示します。
- <?xml version="1.0" encoding="Shift_JIS"?>
- <!DOCTYPE server PUBLIC
- "-//Nimbus//DTD Nimbus 1.0//JA"
- "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
- <server>
- <manager>
- <!-- ScheduleMakerサービス -->
- <service name="BusinessDayScheduleMaker"
- code="jp.ossc.nimbus.service.scheduler2.DatabaseConditionScheduleMakerService">
- <!-- スケジュール作成日をSQLに文字列として埋め込む場合のフォーマットを設定する -->
- <attribute name="DateFormat">yyyyMMdd</attribute>
- <!-- SQLを設定する -->
- <attribute name="Query">
- SELECT COUNT(1) FROM BUSINESSDAY WHERE DAY = ?
- </attribute>
- <!-- ConnectionFactoryサービスのサービス名を設定する -->
- <attribute name="ConnectionFactoryServiceName">#ConnectionFactory</attribute>
- <depends>ConnectionFactory</depends>
- </service>
- <!-- JDBCドライバ経由でConnectionを取得するConnectionFactoryサービス -->
- <service name="ConnectionFactory"
- code="jp.ossc.nimbus.service.connection.JDBCConnectionFactoryService">
- <attribute name="DriverName">org.hsqldb.jdbcDriver</attribute>
- <attribute name="ConnectionURL">jdbc:hsqldb:./localDB</attribute>
- <attribute name="UserName">sa</attribute>
- <attribute name="Password"></attribute>
- </service>
- <!-- ScheduleManagerサービス -->
- <service name="ScheduleManager"
- code="jp.ossc.nimbus.service.scheduler2.DefaultScheduleManagerService">
- <attribute name="ScheduleMasterServiceNames">
- #ScheduleMaster1
- #ScheduleMaster2
- </attribute>
- <attribute name="ScheduleMakerTypeMapping">
- 営業日=#BusinessDayScheduleMaker
- </attribute>
- <attribute name="PersistDir">./schedule</attribute>
- <depends>BusinessDayScheduleMaker</depends>
- <depends>
- <!-- スケジュールマスタ1
- 08:00:00にFlow1を実行するスケジュール
- -->
- <service name="ScheduleMaster1"
- code="jp.ossc.nimbus.service.scheduler2.DefaultScheduleMaster">
- <attribute name="Id">Schedule1</attribute>
- <attribute name="TaskName">Flow1</attribute>
- <attribute name="StartTime">// 08:00:00 000</attribute>
- <attribute name="ScheduleType">営業日</attribute>
- </service>
- </depends>
- <depends>
- <!-- スケジュールマスタ2
- スケジュールマスタ1の終了を待って、08:00:00にFlow2を実行するスケジュール
- -->
- <service name="ScheduleMaster2"
- code="jp.ossc.nimbus.service.scheduler2.DefaultScheduleMaster">
- <attribute name="Id">Schedule2</attribute>
- <attribute name="TaskName">Flow2</attribute>
- <attribute name="StartTime">// 08:00:00 000</attribute>
- <attribute name="Input">100</attribute>
- <attribute name="Depends">Schedule1</attribute>
- <attribute name="ScheduleType">毎日</attribute>
- </service>
- </depends>
- </service>
- </manager>
- </server>