Spring Scheduler stops unexpectedly Spring Scheduler stops unexpectedly spring spring

Spring Scheduler stops unexpectedly


Since this question got so many votes, I'll post what the (probably very specific) solution to my problem was.

We are using the Apache HttpClient library to make calls to remote services in the scheduled jobs. Unfortunately there are no default timeouts set when performing requests. After setting

connectTimeoutconnectionRequestTimeoutsocketTimeout

to 30 seconds the problem was gone.

int timeout = 30 * 1000; // 30 secondsRequestConfig requestConfig = RequestConfig.custom()        .setConnectTimeout(timeout)        .setConnectionRequestTimeout(timeout)        .setSocketTimeout(timeout).build();HttpClient client = HttpClients.custom()        .setDefaultRequestConfig(requestConfig).build();


This is pretty easy to find out. You would be doing this with a stack trace. There are many posts on how to get a stack trace, on unix system you do 'kill -3 ' and the stack trace appears in the catalina.out log file.

Once you have a stack trace, find the scheduler thread and see what it is doing. Is it possible that the task it was executing got stuck?

you can also post the stack trace here for more help.

what is important to know is what scheduler you use. if you use the SimpleAsyncTaskExecutor, it will start a new thread for each task, and your scheduling will never fail. However, if you have tasks that don't finish, you will run out of memory eventually.

http://docs.spring.io/spring/docs/3.0.x/reference/scheduling.html


In my case stack trace was absolutely clean, thread started only a couple of time and that's all. The problem was in conflict with another schedule.

Updated

Schedule not work correctly, because I use fixedDelayString and the previous job not ended when was time to start new. After changed schedule to fixedRateString, threads started correctly.