2016-03-22 19 views
1

Bahar 4.2.5 Java 7 Tomcat 7Bahar zaman uyumsuz Görev

benim çalışan zaman uyumsuz görev kontrol etmek istiyorum çalışan. Çalışırken progess görevini kontrol edin. Çalıştırılacak asenkron görev olarak denetleyici. hello.jsp, ilerleme hizmetini (itRunning) görmek için jQuery işlevini (zamanlayıcı) içerir.

Kontrolör

@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 
    } 

} 

Servis

@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; 
    } 

} 

nasıl itRunning okuyabilirim?

Teşekkürler

cevap

0

Yaklaşımınız karmaşık olabilir ve muhtemelen mümkün olmayabilir.

kilit nokta duymak olduğunun başka bir iş parçacığı (web isteği hizmet verecek iplik) gerçekleşecek ilerlemeyi hizmet edecek iplik saygı kontrol için

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

aşağıya kodunda senin eşzamansız görev. Denetleyiciniz için async görevinizin ilerleyişi hakkında bilgi almak imkansız olacaktır.

Daha iyi bir yaklaşım, asenkronizasyonunuzun ilerlemeyi yayınladığı websocket kullanabilir. Spring yon'daki web soketinin nasıl kullanıldığını görmek için bir örnek görmek üzere http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/ ve https://spring.io/guides/gs/messaging-stomp-websocket/ resmi belgelerini görebilirsiniz.

Umarız bu size yardımcı olabilir, çünkü karmaşık kullanımda bile görünebilirse websocket gibi bir durumda birçok sorunu çözebilirsiniz.

İlgili konular