定期的に処理を実行する事は出来ますか?

タスクマネージャ機能を利用して定期的に処理を実行する事が出来ます。

タスクマネージャに処理を登録するには%SYS.Task.Definition を継承したクラスを作成する必要があります。

以下のサンプルコードを参考にしてください。

Parameter TaskName には タスクマネージャで表示されるタスクのタイプを指定します。

タスクが実行されると メソッド "OnTask" が実行されるので、メソッド "OnTask" を作成し実際に実行したい処理を記述します。

タスクを作成した後、タスクスケジューラウィザードのタスクタイプで作成したタスクを指定し実行条件を設定します。 

 

Class User.TaskMemHeap Extends %SYS.Task.Definition
{
Parameter TaskName = "メモリヒープのモニター";
// LogFileの設定
Property LogFile As %String [ InitialExpression = "TaskMemHeap.log" ];
Method OnTask() As %Status
{
    Set Para=$Select(##class(%File).Exists(..LogFile):"AWS",1:"NWS")
    Open ..LogFile:Para
    Use ..LogFile
    Write !,$ZDateTime($H,3,1)," -----------------------------------",!
    Do $system.Config.SharedMemoryHeap.DisplayUsage()
    Close ..LogFile
    Quit $$$OK
}
}

 
既存のクラスやルーチンを実行するには、タスクマネージャへの登録が必要です。

登録には、タスクスケジューラウィザードを使用します。画面の起動方法は、以下の通りです。

【バージョン2011.1~】
管理ポータル: [システムオペレーション] > [タスクマネージャ] > [新しいタスク]

【バージョン2007.1~2010.2】
システム管理ポータル: [タスクマネージャ] > [新規タスクスケジュール]

タスクスケジューラウィザードの"このタスクを実行するネームスペース:"で、既存クラスやルーチンが存在するネームスペースを選択します。

上記例文を実行するには、"タスクタイプ"で、"メモリヒープのモニター"を選択します。("メモリヒープのモニター" は、例文の TaskNameパラメータ で指定したタスク名です。)

この他、"タスクタイプ"で、 "レガシータスク実行" を選択し、"ExecuteCode" に実行したいクラスやルーチンを登録する事でも、同様に処理を登録する事ができます。
 


該当する製品: Caché, Ensemble, 旧HealthShare, IRIS Data Platform, IRIS for Health
関連トピック: テーブルデータ一括削除の際にジャーナルデータを最小限にする方法
添付ファイル:

アンケートにご協力をお願いします
このトピックは参考になりましたか?
このトピックに関するお問い合わせ

FAQトップに戻る