2011-12-29 40 views
0

我想設置每隔n秒啓動一次方法。但這樣做,正可以調節,同時運行如何使用Spring @Autowire設置TaskScheduler運行方法,時間變量爲n秒?

方法揭開序幕:PingInvoker.ping()

public class PingInvoker 
{ 
    public void ping() 
    { 
    List<Server> svr = Manager.getList(); 

    for (Server i : svr) 
     i.ping(); 
    } 
} 

應用程序上下文:

???

+0

爲什麼你不希望使用Timer類從JavaSE的這個目的? – maks 2011-12-29 15:35:26

+0

我需要Spring來處理這個服務器的用途 – stackoverflow 2011-12-29 15:36:52

+1

如果你部署一個不懶惰的單身bean,並且在構造函數中有定時器的東西,它會做你想做的事 – maks 2011-12-29 15:46:22

回答

1
class PingInvoker { 

    public PingInvoker() { 
     // TODO Auto-generated constructor stub 
     Timer timer = new Timer(); 
     timer.schedule(new Mytask(), 0, period); 
    } 

    public void ping() { 
     List<Server> svr = Manager.getList(); 

     for (Server i : svr) 
     i.ping(); 
    } 

    static class MyTask extends TimerTask { 
     @Override 
     public void run() { 
      ping(); 
     } 
    } 

}

您必須部署PingInvoker爲單例的bean,並指定例如period只要你想

相關問題