Anarchy In the 1K

Java

Spring BatchでPartitioningを用いて処理の多重化

背景 Spring Batchのパフォーマンスの改善の為に、Partitioningを用いた処理の多重化を検討することになりました。今回の記事では、実際に動くものを元に解説を行います。 目次 背景 目次 解説 概説 詳説 設定 コード slaveステップで呼び出すTasklet Partit…

CommandLineJobRunnerを用いたSpring Batchの実行

目次 目次 背景 ハンズオン 事前準備 DBの用意 プロジェクトの作成 コーディング 設定ファイル Spring Batchの設定 ジョブ個別の設定 Javaソース ファイル 実行 背景 前回こちらの記事でSpring Boot Batchを用いたバッチ実行を行いました。今回は、コマンド…

Spring Boot Batchの実行とメタデータテーブル

目次 目次 背景 ハンズオン 事前準備 プロジェクトの作成 DBの用意 コーディング Tasklet JavaConfig エントリポイント 設定ファイル 実行 1回目 実行前のDB アプリケーションの実行 実行後のDB 2回目 アプリケーションの実行 実行後のDB 背景 必要に迫られS…

Java NIOを用てスケーラブルI/Oを実現する

目次 目次 背景 ノンブロッキングI/Oの実装方法 NIOとストリームI/Oの比較 Bufferクラス 概要 主な属性 主な操作 I/Oの多重化の実装方法 利用するクラス一覧 SelectableChannelをSelectorに登録する方法 背景 先日、こちら記事でスケーラブルI/Oの実現方法を…

Gradleでマルチプロジェクト

マルチプロジェクトについて マルチプロジェクトとは 複数の子プロジェクトを内部に保持するプロジェクトのことを指します。マルチプロジェクトを用いることで、1つのプロジェクトを更に細かい粒度で分割することが可能になります。 マルチプロジェクトの使…

ThreadPoolExecutorの調査

背景 Javaでスレッドプールを扱う際に、いつもお世話になっているThreadPoolExecutorに関して、ExecutorsクラスのnewXyzThreadPoolメソッドを用いて生成するだけで、その中身を意識したことはありませんでした。今回はそのThreadPoolExecutor関して、調べた…

Javaにおけるスレッドの状態待ち

背景 マルチスレッドの処理において、排他制御の為にロックを取得し、期待する状態を待って後続処理を続行する。この様なよくある処理に関して、詳細を以下にまとめます。 実装例 早速ですが、スレッドの状態待ちにの実装例です。概要は以下の通りです。 rea…

MyBatis Dynamic SQLを使ってみた。

背景 Java + MyBatisを使って開発を行っているのですが、コード上でSQLの組み立てを行う方法が無いか調べたところ、MyBatis Dynamic SQLを使うと実現できる様です。 以下のQuick Startを元に試してみたので、ここではその際のメモを残そうと思います。 MyBat…