YKLook説明書 環境設定 スイープ処理 前へ   次へ
   

スイープ処理


YKLook にはスイープ機能があります。
ある一定の周期・条件に基づいて YKLook の作業ファイルとログファイルを自動的に古いものから順に削除します。
いわゆるパージ(purge・解放)処理をおこないます。
カスタマイズもできます。
これにより、コンピュータ管理者の手間・負担を軽くすることができます。


スイープの契機

スイープ処理は以下のタイミングでおこなわれます。
これ以外のタイミングでも実行したいときは、明示的に yki_sweep() メソッドを任意のタイミングで呼び出してください。
このメソッドを含め、詳細については次項以降で説明します。


組み込みの処理

デフォルトでは、以下の処理を、前項のタイミングごとに自動的に繰り返しおこないます。
この処理は、前項のタイミングごとにメソッド yki_sweep() を呼び出すことにより実行しています。
このメソッドは YKLookMain クラスにあり、プログラム製作者により実装(オーバーライド)可能なメソッドです。
YKLookMain クラスのデフォルト実装では、単に yk_sweep() を呼び出しており、このメソッドが実際のパージ処理をおこないます。

超過時間と削除するファイル数はそれぞれカスタマイズできます。
詳細については次項以降で説明します。


設定の変更

実際にパージ処理をおこなう前項のメソッド yk_sweep() は、 メソッド yki_sweep_info() の戻り値を参考にしてファイルを削除しています。
この戻り値でファイル時刻の超過時間と削除するファイル数を決定しています。
このメソッドをプログラム製作者により実装(オーバーライド)することで、任意の超過時間とファイル数を指定できます。

def yki_sweep_info()
    return [ 1, 'day', 20, 3, 'day', 10 ]
end

上の例は、超過時間はデフォルトのままで、削除するファイル数の最大値を変更し、作業ファイルが 20個まで、ログファイルが 10個までになります。
このファイル数は、1回のパージ処理に対するものです。
ファイル数を制限する目的は、処理時間を一定の時間以下に抑えるためです。

詳細は クラス解説 YKLookMain の各メソッドの説明をご覧ください。


任意ファイルのスイープ

メソッド yki_sweep() を実装(オーバーライド)することにより、YKLook の作業ファイル以外の任意のファイルをスイープすることができます。

def yki_sweep()
    super()      # デフォルトのスイープ処理

    ... プログラム製作者の独自のスイープ処理 ...
end

上の例では、最初にスーパークラス YKLookMain の同メソッドを呼び出してデフォルト処理をおこない、その後で任意のスイープ処理をしています。


スイープ専用プログラム

画面の表示は一切せず、単にスイープ処理だけをおこなうプログラムについて説明します。

通常のプログラム
YKLookMain.yk_mainloop( Xxxxx.new() )
スイープ専用プログラム
Xxxxx.new().yki_sweep()

通常のプログラムでは、メソッド yk_mainloop() を呼び出します。
しかしこれでは画面の表示処理とともにアプリ利用者からのイベント待ちになるため、呼び出し元に すぐに制御が戻ってはきません。
そこで、 yk_mainloop() を使わずに、直接 yki_sweep() を呼び出せば、1回だけスイープ処理をしてすぐに呼び出し元に制御が戻ってきます。


注意事項

ログファイルのスイープには注意が必要です。
スイープ処理の対象になるのはデフォルトのエラー出力用のログファイルを保存しているディレクトリのみです。
それ以外のディレクトリをスイープする場合は、 yki_sweep() を実装・オーバーライドしてスイープ処理をしてください。
前述の 任意ファイルのスイープ を参考にしてください。

実際にどのディレクトリがデフォルトなのかを確認するには、 環境設定 > YKLookの作業用ディレクトリ → ディレクトリを確認 を参考にしてください。




   
YKLook説明書 環境設定 スイープ処理 前へ   次へ


Copyright (c) 2003-2010 YorozuKotowariYa Ltd.