SpringBatch taskletでの実行について
受付中
回答 0
投稿
- 評価
- クリップ 0
- VIEW 3,176
EclipseでSpringBatchファイルを作成し、以下のURLの「社員CSV〜」以前の項目ようそのまま実行して「HelloWorld」をコンソールに
表示させることができましたが、
module-context.xmlを編集し、chunkではなくtaskletで処理を行いたいです。
http://qiita.com/yu_eguchi/items/5f93a3e703030d7e472d
batch:chunkを消し、<batch:tasklet="class名">のようにclassを指定すればよいとおもうのですが、
プロジェクト作成時に記載してあるHelloWorldを渡す「ExampleItemReader.java」とログに書き出す「ExampleItemWriter.java」
の処理をうまく1つのclassにまとめる実装のイメージが全くできません。
そのまま同じ処理を一つのclassにまとめて、module-contextで指定したいです。
ご存知の方いらっしゃればご教授いただけると幸いです。
どうぞ宜しくお願いいたします。
module-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:batch="http://www.springframework.org/schema/batch"
xsi:schemaLocation="
http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch-2.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<description>Example job to get you started. It provides a skeleton for a typical batch application.</description>
<batch:job id="job1">
<batch:step id="step1" >
<batch:tasklet transaction-manager="transactionManager" start-limit="100" >
<batch:chunk reader="reader" writer="writer" commit-interval="1" />
</batch:tasklet>
</batch:step>
</batch:job>
</beans>
ExampleItemReader.java
package jp.co.sample;
import org.springframework.batch.item.ItemReader;
import org.springframework.stereotype.Component;
/**
* {@link ItemReader} with hard-coded input data.
*/
@Component("reader")
public class ExampleItemReader implements ItemReader<String> {
private String[] input = {"Hello world!", null};
private int index = 0;
/**
* Reads next record from input
*/
public String read() throws Exception {
if (index < input.length) {
return input[index++];
}
else {
return null;
}
}
}
ExampleItemWriter.java
package jp.co.sample;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.batch.item.ItemWriter;
import org.springframework.stereotype.Component;
/**
* Dummy {@link ItemWriter} which only logs data it receives.
*/
@Component("writer")
public class ExampleItemWriter implements ItemWriter<Object> {
private static final Log log = LogFactory.getLog(ExampleItemWriter.class);
/**
* @see ItemWriter#write(java.util.List)
*/
public void write(List<? extends Object> data) throws Exception {
log.info(data);
}
}
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
まだ回答がついていません
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.13%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる