/** * Overrides the buffering settings in the chunk processor if it is fault tolerant. * @param chunkProcessor the chunk processor that is going to be used in the workers */ private void setNonBuffering(ChunkProcessor<T> chunkProcessor) { if (chunkProcessor instanceof FaultTolerantChunkProcessor<?, ?>) { ((FaultTolerantChunkProcessor<?, ?>) chunkProcessor).setBuffering(false); } }
protected ChunkProcessor<I> createChunkProcessor() { BatchRetryTemplate batchRetryTemplate = createRetryOperations(); FaultTolerantChunkProcessor<I, O> chunkProcessor = new FaultTolerantChunkProcessor<>(getProcessor(), getWriter(), batchRetryTemplate); chunkProcessor.setBuffering(!isReaderTransactionalQueue()); chunkProcessor.setProcessorTransactional(processorTransactional); SkipPolicy writeSkipPolicy = createSkipPolicy(); writeSkipPolicy = getFatalExceptionAwareProxy(writeSkipPolicy); chunkProcessor.setWriteSkipPolicy(writeSkipPolicy); chunkProcessor.setProcessSkipPolicy(writeSkipPolicy); chunkProcessor.setRollbackClassifier(getRollbackClassifier()); chunkProcessor.setKeyGenerator(keyGenerator); detectStreamInReader(); ArrayList<StepListener> listeners = new ArrayList<>(getItemListeners()); listeners.addAll(skipListeners); chunkProcessor.setListeners(listeners); chunkProcessor.setChunkMonitor(chunkMonitor); return chunkProcessor; }
protected ChunkProcessor<I> createChunkProcessor() { BatchRetryTemplate batchRetryTemplate = createRetryOperations(); FaultTolerantChunkProcessor<I, O> chunkProcessor = new FaultTolerantChunkProcessor<>(getProcessor(), getWriter(), batchRetryTemplate); chunkProcessor.setBuffering(!isReaderTransactionalQueue()); chunkProcessor.setProcessorTransactional(processorTransactional); SkipPolicy writeSkipPolicy = createSkipPolicy(); writeSkipPolicy = getFatalExceptionAwareProxy(writeSkipPolicy); chunkProcessor.setWriteSkipPolicy(writeSkipPolicy); chunkProcessor.setProcessSkipPolicy(writeSkipPolicy); chunkProcessor.setRollbackClassifier(getRollbackClassifier()); chunkProcessor.setKeyGenerator(keyGenerator); detectStreamInReader(); ArrayList<StepListener> listeners = new ArrayList<StepListener>(getItemListeners()); listeners.addAll(skipListeners); chunkProcessor.setListeners(listeners); chunkProcessor.setChunkMonitor(chunkMonitor); return chunkProcessor; }
protected ChunkProcessor<I> createChunkProcessor() { BatchRetryTemplate batchRetryTemplate = createRetryOperations(); FaultTolerantChunkProcessor<I, O> chunkProcessor = new FaultTolerantChunkProcessor<I, O>(getProcessor(), getWriter(), batchRetryTemplate); chunkProcessor.setBuffering(!isReaderTransactionalQueue()); chunkProcessor.setProcessorTransactional(processorTransactional); SkipPolicy writeSkipPolicy = createSkipPolicy(); writeSkipPolicy = getFatalExceptionAwareProxy(writeSkipPolicy); chunkProcessor.setWriteSkipPolicy(writeSkipPolicy); chunkProcessor.setProcessSkipPolicy(writeSkipPolicy); chunkProcessor.setRollbackClassifier(getRollbackClassifier()); chunkProcessor.setKeyGenerator(keyGenerator); detectStreamInReader(); ArrayList<StepListener> listeners = new ArrayList<StepListener>(getItemListeners()); listeners.addAll(skipListeners); chunkProcessor.setListeners(listeners); chunkProcessor.setChunkMonitor(chunkMonitor); return chunkProcessor; }
protected ChunkProcessor<I> createChunkProcessor() { BatchRetryTemplate batchRetryTemplate = createRetryOperations(); FaultTolerantChunkProcessor<I, O> chunkProcessor = new FaultTolerantChunkProcessor<>(getProcessor(), getWriter(), batchRetryTemplate); chunkProcessor.setBuffering(!isReaderTransactionalQueue()); chunkProcessor.setProcessorTransactional(processorTransactional); SkipPolicy writeSkipPolicy = createSkipPolicy(); writeSkipPolicy = getFatalExceptionAwareProxy(writeSkipPolicy); chunkProcessor.setWriteSkipPolicy(writeSkipPolicy); chunkProcessor.setProcessSkipPolicy(writeSkipPolicy); chunkProcessor.setRollbackClassifier(getRollbackClassifier()); chunkProcessor.setKeyGenerator(keyGenerator); detectStreamInReader(); ArrayList<StepListener> listeners = new ArrayList<StepListener>(getItemListeners()); listeners.addAll(skipListeners); chunkProcessor.setListeners(listeners); chunkProcessor.setChunkMonitor(chunkMonitor); return chunkProcessor; }
/** * @return {@link ChunkProcessor} configured for fault-tolerance. */ @Override protected SimpleChunkProcessor<T, S> configureChunkProcessor() { BatchRetryTemplate batchRetryTemplate = configureRetry(); FaultTolerantChunkProcessor<T, S> chunkProcessor = new FaultTolerantChunkProcessor<T, S>(getItemProcessor(), getItemWriter(), batchRetryTemplate); chunkProcessor.setBuffering(!isReaderTransactionalQueue()); chunkProcessor.setProcessorTransactional(processorTransactional); SkipPolicy writeSkipPolicy = skipPolicy != null ? skipPolicy : new LimitCheckingItemSkipPolicy(skipLimit, getSkippableExceptionClasses()); writeSkipPolicy = getFatalExceptionAwareProxy(writeSkipPolicy); chunkProcessor.setWriteSkipPolicy(writeSkipPolicy); chunkProcessor.setProcessSkipPolicy(writeSkipPolicy); chunkProcessor.setRollbackClassifier(getRollbackClassifier()); chunkProcessor.setKeyGenerator(keyGenerator); chunkProcessor.setChunkMonitor(chunkMonitor); return chunkProcessor; }