The task executor is for the parallel processing of chunks not for one time execution of a step
https://docs.spring.io/spring-batch/reference/scalability.html
If you remove it then it will execute once.
You can set the name of the thread in your step execution function
Thread.currentThread().setName("mythread");