Java TimerTask Странное поведение - PullRequest
0 голосов

У меня есть пользовательская задача таймера, которая выполняется один раз за X секунд в контроллере ... Сценарий, с которым я столкнулся вчера, происходит, когда я планирую свою задачу таймера и, мгновенно, я планирую другое время и третий раз.Каждый раз, когда я планирую, я создаю пользовательский объект из класса A и назначаю его для этой задачи таймера (чтобы впоследствии он выполнял некоторую работу в методе run).

Странный сценарий возникает, когда пользовательская задача таймеравыполняется потому что… как будто я назначил третий объект трем объектам задания таймера ... Вместо того, чтобы сохранять каждый объект задания таймера, соответствующий ему экземпляр A ... Я пока исследую API ...

@RequestMapping(value = "execute", method = RequestMethod.POST, produces = {MediaType.APPLICATION_JSON_VALUE})
@ResponseBody
public void executeTimerTask(@RequestParam("task") String task) {

      new java.util.Timer().schedule(new java.util.TimerTask() {
          @Override
          public void run() {
              System.out.println("task: " + task);
          }
       }, 10 * 1000);
}

Это будет более или менее копия того, что у меня есть до создания пользовательской задачи таймера ... Если я быстро выполню и трижды достигну этой конечной точки (до 10 секунд), когда задача таймера будет выполнена, то этобудет напечатано значение из третьей конечной точки выполнения.То, что я хочу, это способ сохранения каждого значения при выполнении задачи ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...