CookBook

ジョブを作成して定期実行する

投稿日:

このCookBookでは、以下の開発モデルでジョブを作成する方法と、作成したジョブを指定した時刻に定期実行する方法を紹介します。
・スクリプト開発モデル
・JavaEE開発モデル

いずれのモデルでもジョブ処理で取得可能な以下の2つを使ったプログラムを作成します。
・アカウントコンテキスト
・ジョブスケジューラコンテキスト

完成イメージ

null
null

完成サンプル

以下の完成サンプルをダウンロードしてご活用ください。

e builder プロジェクト : im_cookbook_111849_create_job.zip
imm ファイル : im_cookbook_111849_create_job-1.0.0.imm

ローカル環境で実行させる場合は、以下のURLにアクセスしてください。
http://localhost:8080/imart/tenant/job_scheduler/job_maintenance
なおベースURLである以下の部分は、環境に合わせて適宜変更してください。
http://localhost:8080/imart

レシピ

  1. プログラムを作成する
    ・スクリプト開発モデル編
    ・JavaEE開発モデル編
  2. 依存関係を設定する
  3. プログラムをジョブとして登録する
  4. ジョブを定刻実行する
  5. ジョブの実行結果を確認する
  6. ジョブネットモニタでジョブの実行結果を確認する

1. プログラムを作成する

はじめに e Builder のモジュールプロジェクト内に実行するプログラムを作成します。
モジュールの作成方法については「アプリケーション開発ガイド - モジュール・プロジェクト作成」を参照してください。

以下の4つをコンソールに表示するサンプルプログラムを作成します。

アカウントコンテキストから以下の値を取得して表示します。
・テナントID
・ユーザコード

ジョブスケジューラコンテキストから以下の値を取得して表示します。
・ジョブID
・ジョブネットID

スクリプト開発モデル編

スクリプト開発向けim-BizAPI - AccountContextオブジェクト
スクリプト開発向けim-BizAPI - JobSchedulerContextオブジェクト
スクリプト開発向けim-BizAPI - JobDetailオブジェクト

  1. 「scriptjob.js」を以下の場所に作成してください。
    src/main/jssp/src/im_cookbook_111849/scriptjob.js

  2. プログラムを記述します。
    ジョブを実行するためのexecute関数を記述します。
    スクリプト開発モデル プログラミングガイド - ジョブスケジューラ

JavaEE開発モデル編

JavaEE開発向けim-BizAPI - インターフェースAccountContext
JavaEE開発向けim-BizAPI - インターフェースJobSchedulerContext
JavaEE開発向けim-BizAPI - クラスJobDetail

  1. 「JavaJob.java」を以下の場所に作成してください。
    src/main/java/jp/co/intra_mart/cookbook/im_cookbook_111849/JavaJob.java

  2. プログラムを記述します。
    ジョブの実行処理を記述するためのexecuteメソッドを記述します。
    TERASOLUNA Server Framework for java (5.x) プログラミングガイド - ジョブスケジューラ

2. 依存関係を設定する

  1. モジュールの依存関係に、「im_tenant」を設定してください。
    依存関係の設定方法は、「アプリケーション開発ガイド - module.xml」を参照してください。

3. ジョブを新規作成する

以下の内容でジョブを作成してください。ジョブの作成方法は「テナント管理者操作ガイド - ジョブを設定する」を参照してください。

  1. 「カテゴリ新規作成」を行ってください。
    項目 設定値(スクリプト) 設定値(JavaEE)
    カテゴリID script_jobcategory java_jobcategory
    カテゴリ名 ScriptSample JavaSample
  2. 「ジョブ新規作成」を行ってください。以下の内容を入力してください。

    項目 設定値(スクリプト) 設定値(JavaEE)
    ジョブID script_job java_job
    ジョブ名 ScriptJob JavaJob
    実行言語 JavaScript Java
  3. 実行プログラムを入力してください。

    開発モデル 設定値
    スクリプト im_cookbook_111849/scriptjob
    JavaEE jp.co.intra_mart.cookbook.im_cookbook_111849.JavaJob
  4. 「新規作成」クリックしてください。

4. ジョブを定刻実行する

スクリプト開発モデルで作成したジョブとJavaEE開発モデルで作成したジョブを同時に実行するジョブネットを作成します。以下の内容でジョブネットを作成してください。ジョブネットの作成方法は「テナント管理者操作ガイド - ジョブネットを設定する」を参照ください。

  1. 「カテゴリ新規作成」を行ってください。
    項目 設定値
    カテゴリID sample_jobnetcategory
    カテゴリ名 SampleJobnet
  2. 「ジョブネット新規作成」を行ってください。

    項目 設定値
    ジョブネットID sample_jobnet_execute
    ジョブネット名 SampleJobExecute
  3. 実行ジョブに「ScriptJob」と「JavaJob」を追加してください。

  4. 祝日や会社の予定を設定したカレンダーを作成するで作成したサンプルカレンダーを使用し、トリガを設定します。営業日指定を選択し、「新規登録」をクリックしてください。

  5. サンプルカレンダーを選択してください。

  6. 現在時刻から3分後にジョブが実行されるよう、時と分を設定してください。
    例:現在時刻がAM9:07の場合

    項目 設定値
    9
    10

※注意
ジョブを実行する日時がカレンダー上で休日の場合、ジョブは実行されません。

  1. 「決定」をクリックしてください。

  2. 営業日指定の有効チェックボックスにチェックを入れてください。

  3. 「新規作成」をクリックしてください。

--------------3分お待ちください----------------

5. ジョブの実行結果を確認する

--------------3分後----------------

  1. コンソールにジョブ実行結果が以下の通り出力されていれば成功です。

スクリプト開発モデルのジョブ実行結果

表示項目 表示内容 備考
テナントID (default) ジョブを実行したテナントのテナントID
ユーザコード im_job ※「im_job」はジョブ実行時の固定値です
ジョブID script_job -
ジョブネットID sample_jobnet_execute -

JavaEE開発モデルのジョブ実行結果

表示項目 表示内容 備考
テナントID (default) ジョブを実行したテナントのテナントID
ユーザコード im_job ※「im_job」はジョブ実行時の固定値です
ジョブID java_job -
ジョブネットID sample_jobnet_execute -

null
null

6. ジョブネットモニタでジョブの実行結果を確認する

  1. 「ジョブネットモニタ一覧」からジョブネットモニタ一覧画面を表示してください。

  2. 該当行をクリックしてください。

複数のジョブが設定した時刻に実行されたことが確認できました。
null

-CookBook
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

eBuilderの起動時処理のパフォーマンス改善

このCookBookでは、ローカル環境でe Builderの起動を速くするための設定を行います。 そのために、特定の機能を外して速く起動させる設定の方法について説明します。 ただし本設定を行うことによ …

no image

外部連携を利用して簡単な相関チェックを行う方法

このCookbookでは、外部連携を利用して簡単な相関チェックを行う方法を紹介します。 この方法を活用することにより、簡単な入力チェックであれば、Formaユーザプログラムの入力チェックを作成せずに外 …

no image

ワークスペース機能におけるイベントカレンダーの利用例

このCookBookでは「intra-mart Accel Collaboration」ワークスペース機能におけるイベントカレンダーの利用例について紹介しています。 intra-mart Accel …

「イベント」ボタン・「一覧へ戻る」ボタンを使用し任意の遷移先を設定する

このCookBookでは、IM-FormaDesignerの画面アイテム・ボタンを使用し、任意の画面に遷移する方法について紹介しています。 設定方法は下記の2パターンです。 「イベント」ボタンを使用す …

no image

IM-FormaDesignerで作成したフォーム画面からIMBoxに投稿する方法

このCookBookでは、IM-BISを含む環境において、IM-FormaDesignerで作成したアプリからIMBoxに投稿する方法について紹介しています。 IM-LogicDesignerとの外部 …

まだデータがありません。

RSSRSSRSSRSS