У меня есть TimerTask, который объявлен и создан в методе инициализации Spring Controller. У таймера есть собственный поток таймера, и он работает по расписанию. Я не могу понять, почему иногда он работает в потоке https-nio tomcat? Это то, как он инициализирован в контроллере пружины, создавая здесь неправильное поведение? И как этого избежать? Может ли использование ScheduledThreadPoolExecutor решить эту проблему?
Код выглядит следующим образом
Spring. xml
<bean id="myRunnableTask" class="MyRunnableTask" />
<bean id="myController" class="MyController" init-method="init">
<constructor-arg index="1" ref="myRunnableTask" />
</bean>
Java код инициализации задачи таймера
import org.springframework.stereotype.Controller;
@Controller
public class MyController
{
private find MyRunnable myRunnable;
public MyController(MyRunnable myRunnable)
{
myRunnable = myRunnable;
}
public void init()
{
Timer timer = new Timer(true);
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.SECOND, 60);
timer.scheduleAtFixedRate(myRunnable,
calendar.getTime(), 300);
}
//Rest of the Code
}