2015-07-24 16 views
11

Spring Batch Giriş okuyucusu, Writer ile çalışan basit bir programım var. Programın amacı basit bir csv dosyasını okumaktır. Ben belirledikSpring Batch işlem aralığı yapılandırması çalışmıyor

commit-interval csv dosya sadece 5 kayıtları vardı ama commit-interval Ben yazar yalnızca bir kez denilen dayalı olacağını bekliyordum 5'e ayarlıdır rağmen nedense Yazar 3 kez çağrıldı 5'e Öğe okuyucusu ve işlemcinin her satır satırını okuyacağını ve yazarın herşeyi aynı anda işleyeceğini anladım. Sanırım taahhüt süresinin etkisi hakkında net değilim. Herhangi bir tavsiye?

<job id="stepJob"> 
    <step id="step1"> 
     <tasklet> 
      <chunk reader="inputReader" writer="outputWriter" commit-interval="5"/> 
     </tasklet> 
    </step> 
</job> 

örnek adımı son parçası bir yığın adımı için ne olduğunu tanımlamak öbek etikettir:

+0

Sorunun nedeni, bir Java koleksiyonunu kullanarak bir sonraki adıma okumak ve geçmek zorunda kalacağım bir milyon kayıtım var. Şimdi küçük bir dosyadan okumaya çalıştığımda, yalnızca sayıları eşit olan son yığın Belirtilen commit-lintervalı, StepExecution kullanılarak bir sonraki adıma geçirilir. Önceki kayıtlar geçmez. Tüm kayıtların geçmesini sağlayabilirim.Örnek aralık yardımını değiştirebilir miyim? Yoksa başka bir yaklaşım var mı? – user5053360

+0

Bunun için ExecutionContext ve ExecutionContextPromotionListener kullanıyorum.Ama işlem aralığına eşit olan yalnızca son yığın bir sonraki adımda ayarlanır ve okunur. – user5053360

+2

Lütfen yapılandırma dosyasını paylaşın. Kullanmakta olduğunuz “okuyucu”, “yazıcı” ve “işlemci” türünü bilmek istiyorum. – SyntaX

cevap

0

ben gibi bir şey olması gerektiğini düşünüyorum. Commit-interval niteliği, örnekte 5 olarak ayarlanır, yani 5 kayıt okunup işlenene kadar kayıtlarının yazılmayacağı anlamına gelir.

İlgili konular