<<<<< 常駐処理(簡易)フレームワーク >>>>>

オンライン処理(Web)でもなく、バッチ処理でもない、
一定時間置きに同じ処理を繰り返す、常駐処理と呼ばれるようなもの
例えば、Webロボットや、クリーンナップサーバなどの、
ポーリングを繰り返しながら実行するタイプのサーバプログラムを
実装するのに役立つと思われるフレームワークです。

例えば、以下のシンプルなサンプルプログラムでは、
次のような出力結果が得られます。

init
Thu Jul 07 01:05:44 JST 2005: Hello!
Thu Jul 07 01:05:45 JST 2005: Hello!
Thu Jul 07 01:05:46 JST 2005: Hello!
Thu Jul 07 01:05:47 JST 2005: Hello!
destroy

つまり、

  1. 起動時にinitメソッドが1度だけ呼ばれる
  2. 起動後は指定間隔(この場合は1秒)にしたがって、execメソッドが何度も呼ばれる
  3. 停止と共にdestoryメソッドが1度だけ呼ばれ、プロセスが停止します。
ということです。
package jdaemon;

import java.sql.SQLException;
import java.util.Date;

/**
 *	サンプル常駐クラス
 */
public class TestDaemon extends DaemonProcess
{
	// 実装必須
	public void exec()
	{
		System.out.println(new Date() + ": Hello!");
	}

	// 実装必須でない(デフォルトは何もしない)
	public void init()
	{
		System.out.println("init");
	}

	// 実装必須でない(デフォルトは何もしない)
	public void destroy()
	{
		System.out.println("destroy");
	}

	// 実装必須でない(デフォルトは何もしない)
	public boolean isShutDown(Throwable t)
	{
		if(t instanceof SQLException)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
}

常駐処理はいったん始まると、指定間隔に従って起動され続けます。
これを停止するため、このフレームワークでは別スレッドでソケットサーバを起動します。
このソケットサーバに接続/切断リクエストがきたところで、常駐処理も停止するという仕組みになっています。
そのため、開始時、終了時のいずれにおいても、ポート番号を指定する必要があります。
(ただし、停止対象はプログラム上localhostに限定しています。)

[Download]
Daemon.zip (9.85KB)

[Install方法]
アーカイブを展開するだけです。

[使い方]
・Windowsの場合
[開始]
run.batを実行してください。
[停止]
stop.batを実行してください。

[設定について]
全ての設定は引数で行います。

開始時の引数
  • 常駐処理クラス名
  • START
  • プロセス起動から処理開始までのディレイタイム[ms]
  • 処理と処理の間のウェイトタイム[ms]
  • 終了通知を受け取るポート番号
  • 終了時の引数
  • STOP
  • 終了通知を行う接続先のポート番号
  • [開発環境]
    <クライアント>
    OS Microsoft WindowsXP HomeEdition
    言語 JDK1.4

    [配布条件等]
    GPL2に従います。
    このソフトウェアは、Free Softwareなので、
    いかなる保証も行いません。

    GPL http://www.gnu.org/copyleft/gpl.html

    [開発者]
    Copyright (C) 2005年 < Takahiro Shigemoto >