Как мне использовать Spring @Autowire, чтобы настроить TaskScheduler для запуска метода с переменной n секунд? - PullRequest
0 голосов
/ 29 декабря 2011

Я бы хотел настроить пружину, чтобы запускать метод каждые n секунд.Но при этом n можно настроить во время работы

Метод начала: PingInvoker.ping ()

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

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

Контекст приложения:

???

1 Ответ

1 голос
/ 29 декабря 2011
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 как синглтон-бин и указать period как хотите

...