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

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

関連記事

結合処理で「多数決」承認機能を実現する

このCookBookでは、「多数決」承認機能を実現する方法について紹介しています。 完成イメージ 以下の完成サンプルをダウンロードしてご活用ください。 im_logicdesigner-data-14 …

no image

request.log を Kibana で可視化する方法

この CookBook では、request.log を Kibana で可視化する方法について紹介しています。 方法は色々ありますが、この CookBook では Logstash と logsta …

no image

ウォッチ機能のご紹介

このCookBookでは「intra-mart Accel Collaboration」に備わっているウォッチ機能のご紹介です。 各会社様でグループで仕事をする機会が多いと思います。 仕事を行う上で、 …

no image

imuiListTableで複数選択した行データを取得する方法

このCookBookでは、imuiListTableで複数選択した行データを取得する方法を紹介します。 imuiListTableについての詳細はAPIドキュメントを参照してください。 [imuiLi …

no image

フォーム内の入力値を案件名に自動入力する方法

このCookbookでは、IM-FormaDesignerで作成した申請画面から入力内容を案件名に設定する方法を紹介します。 この方法を利用するとIM-FormaDesignerの入力内容をIM-Wo …

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

RSSRSSRSSRSS