2014-05-14 35 views
0

我想從Spring調用Oracle PL/SQL過程。該過程需要大量的時間,所以我希望它在後臺執行(異步),並簡要地從DAO方法和控制器返回。 什麼是從一個長期運行的程序返回最優雅的方法?我不必在調用該過程的請求中跟蹤它的執行情況。如何從Spring MVC中的長時間運行的過程調用中返回?

什麼我目前擁有的是:

@Override 
public void submitJob(final Integer param1, final String param2, final Integer param3) { 
    jdbcTemplate.execute(
     new CallableStatementCreator() { 
      public CallableStatement createCallableStatement(Connection con) throws SQLException{ 
       CallableStatement cs = con.prepareCall("{call PCKG.MY_PROC(?, NULL, ?, ?)}"); 
       cs.setInt(1, param1); 
       cs.setString(2, param2); 
       cs.setInt(3, param3); 
       return cs; 
      } 
     }, 
     new CallableStatementCallback() { 
      public Object doInCallableStatement(CallableStatement cs) throws SQLException{ 
       cs.execute(); 
       return null; 
      } 
     } 
    ); 
} 
+0

認沽'@ Async'在'submitJob'方法,用'一起註冊了'TaskExecutor' <任務:註解驅動/>',你應該是好走。檢查http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html#scheduling-annotation-support-async –

+0

謝謝。我會試一下 :-) – wsk

回答

相關問題