goo blog サービス終了のお知らせ 

ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

AsakusaFW Importer/Exporterでのバッチ引数

2020-12-11 22:08:48 | PG(分散処理)

Asakusa Framework Advent Calendar 2020の11日目です。

Asakusa Frameworkのバッチ引数は、Importer/Exporter(入出力ファイル定義)の中でも使えます。
例えばファイル名やファイルのパスの一部に使用できます。
ただ、通常のJavaのコーディングと違って、事前に引数の値を加工するタイミングが無いので、たまに不便に思うときがありますね…。
(バッチ引数がYYYY-MM-DDで、Importer/ExporterではYYYYMMDDで使いたい場合とか)


AsakusaFW BatchContext+Shared

2020-12-10 00:00:00 | PG(分散処理)

Asakusa Framework Advent Calendar 2020の10日目です。

BatchContextを扱うクラスを用意することのメリットのひとつが、データ型を変換して保持するようなコーディングが出来ることです。

public class BatchContextUtil {
  static String getDateAsString() {
    return BatchContext.get("date");
  }
  public static Date getDate() {
    return SharedUtil.getDate(); //この中でBatchContextUtil.getDateAsString()を呼び出す
  }
}

BatchContextから取得する値はバッチ実行中は変化しないので、「変化しない値を保持するShared」と相性が良いです。


AsakusaFW BatchContext

2020-12-09 20:27:50 | PG(分散処理)

Asakusa Framework Advent Calendar 2020の9日目です。

Asakusa Frameworkでは、バッチの引数をBatchContextというクラスから取得できます。
これはキーとして文字列を指定するので、BatchContextを扱うクラスをひとつ用意し、キー文字列はそのクラス内にとどめるコーディングスタイルにするのがよいと思います。

public class BatchContextUtil {
  public static String getDate() {
    return BatchContext.get("date");
  }
}

AsakusaFW Sharedをまとめる勧め

2020-12-08 00:00:00 | PG(分散処理)

Asakusa Framework Advent Calendar 2020の8日目です。

Asakusa FrameworkでSharedCleanerを使う場合、Sharedを使っているクラスを指定する必要があります。
つまり、Sharedを使っているクラスが複数あると、TestクラスでSharedCleanerをその分だけ記述する必要があるということです。また、後からSharedを使っているクラスが増えると、基本的にTestクラスにそれを追加していく必要があります。

なので、Sharedだけを記述するようなユーティリティークラスをひとつ用意し、SharedCleanerはそのクラスだけを指定するようにするのが便利だと思います。


AsakusaFW SharedCleaner

2020-12-07 00:00:00 | PG(分散処理)

Asakusa Framework Advent Calendar 2020の7日目です。

Asakusa FrameworkのOperatorクラスで、変化しない値を保持するためにSharedを使いますが、これの何が良いかというと、テスト時に値をクリアすることが出来るということです。

Sharedはバッチ実行中に変化しない値を保持しますが、テスト実行時に関しては、テストケース毎に保持する値が変わる事がありえます。
そのためにSharedCleanerというクラスが用意されています。これを使うと、Sharedで保持している値をクリアすることが出来るので、テストケース毎に初期化できるというわけです。