2016-03-22 4 views
1

Spring 4.2.5 Java 7 Tomcat 7Spring Асинхронный Task работает

Я хочу, чтобы проверить мой ход асинхронной задачи. Проверяйте задачу выполнения при запуске. Контроллер в качестве задачи async для запуска. hello.jsp содержит функцию jQuery (таймер), чтобы увидеть службу выполнения (itRunning).

Контроллер

@Controller 
public class HelloController { 

    @Inject 
    private RouteService routeService; 

    @RequestMapping(value = "/", method = RequestMethod.GET) 
    public String printRoute() { 

     try { 

      Future<Plane> plane = routeService.execute(); 

     } catch (Exception e) { 
      System.out.println(e.getMessage()); 
     } 

     return "hello"; 

    } 

    @RequestMapping(value = "/status") 
    @ResponseBody 
    public String fetchStatus() { 
     --> Here return itRunning 
    } 

} 

Сервис

@Component("routeService") 
public class RouteService { 

    @Inject 
    private Route route; 

    @Async 
    public Future<Plane> execute() { 

     Plane plane = route.execute(); 

     return new AsyncResult<Plane>(boat); 

    } 
} 

AsyncTask

public class Route 
{ 

    private int itRunning=0; 

    public Plane execute() { 
     itRunning++; 
    } 

    public int getItRunning() { 
     return itRunning; 
    } 

} 

Как я могу прочитать itRunning?

Thanks

ответ

0

Ваш подход может быть сложным и, вероятно, не возможен.

Ключевой момент услышать, что в коде ниже

@RequestMapping(value = "/status") 
@ResponseBody 
public String fetchStatus() { 
    --> Here return itRunning 
} 

для проверки хода будет работать в другой нити (нити, которая будет служить веб-запрос) уважение Протяните будет служить ваш асинхронная задача. Для вашего контроллера будет невозможно получить информацию об улучшении вашей задачи async.

Лучшим подходом может быть использование websocket, в котором ваша асинтеза публикует продвижение. Для использования веб-сокета весной вы можете увидеть официальную документацию http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/ и https://spring.io/guides/gs/messaging-stomp-websocket/ для просмотра примера.

Я надеюсь, что это может вам помочь, потому что даже если может возникнуть сложное использование websocket решить многие проблемы в случае, как ваш.

Смежные вопросы