クラス 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) 新規作成
導入されたバージョン:
JDK1.8,
  • フィールドの概要

    フィールド
    修飾子とタイプ
    フィールド
    説明
    static final long
    最初にスキャンを実行するまでの遅延時間(秒) の初期値
    static final long
    スキャンする間隔(秒) の初期値
    static final long
    ファイルのタイムスタンプとの差のチェック(秒) の初期値
  • コンストラクタの概要

    コンストラクタ
    コンストラクタ
    説明
    DirWatch(Path sPath)
    スキャンパスを引数に作成される、コンストラクタです。
    DirWatch(Path sPath, boolean useTree)
    スキャンパスと関数型インターフェースフォルダを引数に作成される、コンストラクタです。
  • メソッドの概要

    修飾子とタイプ
    メソッド
    説明
    void
    ファイルパスを、引数に取る Consumer ダオブジェクトを設定します。
    boolean
    このフォルダスキャンで、最後に処理した結果が、エラーの場合に、true を返します。
    boolean
    スキャンファイルの重複チェック用SetにPathを追加します。
    void
    run()
    Runnableインターフェースのrunメソッドです。
    void
    スキャンファイルの重複チェック用Setをクリアします。
    void
    指定のパスが、指定の文字列と、終端一致(endsWith) したパスのみ、callback されます。
    void
    指定のパスの照合操作で、パターンに一致したパスのみ、callback されます。
    void
    内部でScheduledExecutorServiceを作成して、ScheduledFuture に、自身をスケジュールします。
    void
    start(long initDelay, long period, long timeDiff)
    内部でScheduledExecutorServiceを作成して、ScheduledFuture に、自身をスケジュールします。
    void
    内部で作成した ScheduledFutureをキャンセルします。
    このオブジェクトの文字列表現を返します。

    クラスから継承されたメソッド java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • フィールド詳細

  • コンストラクタの詳細

    • 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 - パスの照合操作のパターン
      関連項目:
    • setPathEndsWith

      public void setPathEndsWith(String... endKey)
      指定のパスが、指定の文字列と、終端一致(endsWith) したパスのみ、callback されます。 これは、#setPathMatcher(PathMatcher) の簡易指定版です。 指定の終端文字列(一般には拡張子)のうち、ひとつでも一致すれば、true となりcallback されます。 指定しない場合(null)は、すべて許可されたことになります。 終端文字列の判定には、大文字小文字の区別を行いません。 なお、#setPathMatcher(PathMatcher) と、この設定は同時には行うことは出来ません。
      パラメータ:
      endKey - パスの終端一致のパターン
      関連項目:
    • callback

      public void callback(Consumer<Path> act)
      ファイルパスを、引数に取る Consumer ダオブジェクトを設定します。 これは、関数型インタフェースなので、ラムダ式またはメソッド参照の代入先として使用できます。 イベントが発生したときの ファイルパス(監視フォルダで、resolveされた、正式なフルパス)を引数に、 accept(Path) メソッドが呼ばれます。
      パラメータ:
      act - 1つの入力(ファイルパス) を受け取る関数型インタフェース
      関連項目:
    • start

      public void start()
      内部でScheduledExecutorServiceを作成して、ScheduledFuture に、自身をスケジュールします。 初期値( initDelay=10L , period=30L , timeDiff=10L ) で、 スキャンを開始します。 #start( 10L , 30L , 10L ) と同じです。
    • 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されます。
      定義:
      run インタフェース内 Runnable
      変更履歴:
      6.8.2.2 (2017/11/02) ネットワークパスのチェックを行います。, 7.2.5.0 (2020/06/01) ネットワークパスのチェックを行います。
    • pathSetAdd

      public boolean pathSetAdd(Path path)
      スキャンファイルの重複チェック用SetにPathを追加します。 このセット内に、指定された要素がなかった場合はtrueを返します。
      パラメータ:
      path - 登録対象となるパス
      戻り値:
      このセット内に、指定された要素がなかった場合はtrue
      変更履歴:
      1.3.0 (2019/04/01) イベントが同時に発生する可能性があるので、Setで重複を除外します。, 8.5.4.2 (2024/01/12) PMD 7.0.0 LinguisticNaming 対応
    • setClear

      public void setClear()
      スキャンファイルの重複チェック用Setをクリアします。 短時間に大量のファイルを処理する場合にイベントとDirWatchが重複したり、 DirWatch 自身が繰返しで重複処理する場合を想定して、同じファイル名は処理しません。 ただし、DATファイルは、基本同じファイル名で来るので、あるタイミングでクリアする必要があります。
      変更履歴:
      1.3.0 (2019/04/01) イベントが同時に発生する可能性があるので、Setで重複を除外します。, 8.0.0.0 (2021/07/01) pathSetのsynchronized対応
    • toString

      public String toString()
      このオブジェクトの文字列表現を返します。
      オーバーライド:
      toString クラス内 Object
      戻り値:
      このオブジェクトの文字列表現