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;
}
}
);
}
認沽'@ Async'在'submitJob'方法,用'一起註冊了'TaskExecutor' <任務:註解驅動/>',你應該是好走。檢查http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html#scheduling-annotation-support-async –
謝謝。我會試一下 :-) – wsk