2015-09-23 3 views
0

Logs:scheduleAtFixedRate() вызывается дважды

[бассейн-1-нить-1] TRACE apns.ApnsPushConnection - Enter Method queryFeedbackService Params [пул-3-поточно-1] TRACE apns.ApnsPushConnection - введите Method queryFeedbackService Params [бассейн-1-токарно-1] TRACE apns.ApnsPushConnection - Возвращение Метод queryFeedbackService
[пул-3-нитка-1] TRACE apns.ApnsPushConnection - Возвращение Метод queryFeedbackService

//In Singleton class constructor 
ScheduledExectorService obj = Executors.newSingleThreadScheduledExecutor(); 


obj.scheduleAtFixedDelay(new runnable(){ 

    public void run(){ 
    classObj.queryFeedbackService(); 
} 
}),20,60,TimeUnit.SECONDS);  



//method called by thread  
public void queryFeedbackService() 
{ 

    code here 

} 
+1

, пожалуйста, напишите свой код. –

+0

Привет, красныйflar3, пожалуйста, пропустите мой комментарий ниже – G555

ответ

0

Из журнала , у вас несколько запущенных пулов: pool-1 и pool-3.

Возможно, вы захотите, чтобы вы только инициализировали один пул.

+0

Да, Жан, вы правы. Но я не понимаю, как это происходит. – G555

+0

ScheduledExecutorService obj = Executors.newSingleThreadScheduledExecutor(); Вот как я его инициализировал – G555

+1

Но вы уверены, что этот кусок кода вызывается только один раз? –

1

Действительно, было 2 бассейна по ответам Жана.

Но в моем случае мой проект загружен в сервер Jetty, который был инициализирован Spring.

Также внутри сервера Jetty - он создавал контейнер для весенних бобах, которые инициализировались из файла service-context.xml.

Так Он вызывался дважды, что приводит к созданию двух бассейнов

Спасибо вам всем, кто комментировал и пытался решить мою проблему. Значит много :)