There is a simpler solution to this problem. The throttling is actually performed by the task Executor for the step - for concurrent processing this is normally a SimpleAsyncTaskExecutor. This is...