クラス DirWatch
- java.lang.Object
-
- org.opengion.fukurou.fileexec.DirWatch
-
- すべての実装されたインタフェース:
Runnable
public class DirWatch extends Object implements Runnable
フォルダに残っているファイルを再実行するためのプログラムです。 通常は、FileWatch で、パスを監視していますが、場合によっては、 イベントを拾いそこねることがあります。それを、フォルダスキャンして、拾い上げます。 10秒間隔で繰り返しスキャンします。条件は、30秒以上前のファイルです。- 変更履歴:
- 7.0.0.0 (2017/07/07) 新規作成
- バージョン
- 7.0
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK1.8,
-
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 static longINIT_DELAY最初にスキャンを実行するまでの遅延時間(秒) の初期値static longPERIODスキャンする間隔(秒) の初期値static longTIME_DIFFファイルのタイムスタンプとの差のチェック(秒) の初期値
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 voidcallback(Consumer<Path> act)ファイルパスを、引数に取る Consumer ダオブジェクトを設定します。booleanisErrorStatus()このフォルダスキャンで、最後に処理した結果が、エラーの場合に、true を返します。voidrun()Runnableインターフェースのrunメソッドです。booleansetAdd(Path path)スキャンファイルの重複チェック用SetにPathを追加します。voidsetClear()スキャンファイルの重複チェック用Setをクリアします。voidsetPathEndsWith(String... endKey)指定のパスが、指定の文字列と、終端一致(endsWith) したパスのみ、callback されます。voidsetPathMatcher(PathMatcher pathMch)指定のパスの照合操作で、パターンに一致したパスのみ、callback されます。voidstart()内部でScheduledExecutorServiceを作成して、ScheduledFuture に、自身をスケジュールします。voidstart(long initDelay, long period, long timeDiff)内部でScheduledExecutorServiceを作成して、ScheduledFuture に、自身をスケジュールします。voidstop()内部で作成した ScheduledFutureをキャンセルします。StringtoString()このオブジェクトの文字列表現を返します。
-
-
-
コンストラクタの詳細
-
DirWatch
public DirWatch(Path sPath)
スキャンパスを引数に作成される、コンストラクタです。 ここでは、階層検索しない(useTree=false)で、インスタンス化します。- パラメータ:
sPath- 検索対象となるスキャンパス
-
DirWatch
public DirWatch(Path sPath, boolean useTree)
スキャンパスと関数型インターフェースフォルダを引数に作成される、コンストラクタです。- パラメータ:
sPath- 検索対象となるスキャンパスuseTree- 階層スキャンするかどうか(true:する/false:しない)
-
-
メソッドの詳細
-
setPathMatcher
public void setPathMatcher(PathMatcher pathMch)
指定のパスの照合操作で、パターンに一致したパスのみ、callback されます。 ここで指定したパターンの一致を判定し、一致した場合は、callback されます。 指定しない場合は、すべて許可されたことになります。 なお、#setPathEndsWith(String...) と、この設定は同時には行うことは出来ません。- パラメータ:
pathMch- パスの照合操作のパターン- 関連項目:
PathMatcher,setPathEndsWith(String...)
-
setPathEndsWith
public void setPathEndsWith(String... endKey)
指定のパスが、指定の文字列と、終端一致(endsWith) したパスのみ、callback されます。 これは、#setPathMatcher(PathMatcher) の簡易指定版です。 指定の終端文字列(一般には拡張子)のうち、ひとつでも一致すれば、true となりcallback されます。 指定しない場合(null)は、すべて許可されたことになります。 終端文字列の判定には、大文字小文字の区別を行いません。 なお、#setPathMatcher(PathMatcher) と、この設定は同時には行うことは出来ません。- パラメータ:
endKey- パスの終端一致のパターン- 関連項目:
setPathMatcher(PathMatcher)
-
callback
public void callback(Consumer<Path> act)
ファイルパスを、引数に取る Consumer ダオブジェクトを設定します。 これは、関数型インタフェースなので、ラムダ式またはメソッド参照の代入先として使用できます。 イベントが発生したときの ファイルパス(監視フォルダで、resolveされた、正式なフルパス)を引数に、 accept(Path) メソッドが呼ばれます。- パラメータ:
act- 1つの入力(ファイルパス) を受け取る関数型インタフェース- 関連項目:
Consumer.accept(Object)
-
start
public void start()
-
start
public void start(long initDelay, long period, long timeDiff)内部でScheduledExecutorServiceを作成して、ScheduledFuture に、自身をスケジュールします。 スキャン開始の遅延時間と、スキャン間隔、ファイルのタイムスタンプとの比較を指定して、スキャンを開始します。 ファイルのタイムスタンプとの差とは、ある一定時間経過したファイルのみ、action をcall します。- パラメータ:
initDelay- 最初にスキャンを実行するまでの遅延時間(秒)period- スキャンする間隔(秒)timeDiff- ファイルのタイムスタンプとの差のチェック(秒)- 変更履歴:
- 7.2.5.0 (2020/06/01) ScheduledExecutorServiceをインスタンス変数にする。
-
stop
public void stop()
内部で作成した ScheduledFutureをキャンセルします。- 変更履歴:
- 7.2.5.0 (2020/06/01) ScheduledExecutorServiceを初期化する。
-
isErrorStatus
public boolean isErrorStatus()
このフォルダスキャンで、最後に処理した結果が、エラーの場合に、true を返します。 対象フォルダが見つからない場合や、検索時にエラーが発生した場合に、true にセットされます。 正常にスキャンできた場合は、false にリセットされます。- 戻り値:
- エラー状態(true:エラー,false:正常)
- 変更履歴:
- 7.2.5.0 (2020/06/01) 新規追加。
-
run
public void run()
Runnableインターフェースのrunメソッドです。 規定のスケジュール時刻が来ると、呼ばれる runメソッドです。 ここで、条件に一致したPathオブジェクトが存在すれば、コンストラクタで渡した 関数型インターフェースがcallされます。
-
setAdd
public boolean setAdd(Path path)
スキャンファイルの重複チェック用SetにPathを追加します。 このセット内に、指定された要素がなかった場合はtrueを返します。- パラメータ:
path- 登録対象となるパス- 戻り値:
- このセット内に、指定された要素がなかった場合はtrue
- 変更履歴:
- 1.3.0 (2019/04/01) イベントが同時に発生する可能性があるので、Setで重複を除外します。
-
setClear
public void setClear()
スキャンファイルの重複チェック用Setをクリアします。 短時間に大量のファイルを処理する場合にイベントとDirWatchが重複したり、 DirWatch 自身が繰返しで重複処理する場合を想定して、同じファイル名は処理しません。 ただし、DATファイルは、基本同じファイル名で来るので、あるタイミングでクリアする必要があります。- 変更履歴:
- 1.3.0 (2019/04/01) イベントが同時に発生する可能性があるので、Setで重複を除外します。
-
-