0
我的Java Web應用程序中有一個REST API。這有一種方法可以從客戶的Android應用程序(客戶端)接收訂單並將其發送(在諸如價格計算等一系列任務之後)將響應發送回客戶端。Java中的異步編程 - 後臺進程
@POST
@Path("order")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public OrderResponse takeOrder(OrderRequest request
) throws IOException {
OrderResponse response = new OrderResponse();
String token = request.getTokenString();
CustomerSession session = sessionPool.getSession(token);
if (session != null) {
OrderHeader order = new OrderHeader();
order.setFkOrderHeaderCustomerID(session.getFkCustomerID());
order.setOrderCreationDate(new Date());
作爲獲取認證會話等任務必須同步完成,當然。 '因爲客戶的反應取決於它的成功或失敗..到目前爲止這麼好。
在此方法結束時,客戶端獲取有關其訂單請求狀態的email
。
Email email = EmailGenerator.createOrderEmail(order);
try {
emailService.send(email);
} catch (MessagingException ex) {
Logger.getLogger(CustomerREST.class.getName()).log(Level.SEVERE, null, ex);
}
response.setStatus(OrderStatusEnum.SUCCESS);
} else {
response.setStatus(OrderStatusEnum.TOKEN_INVALID);
}
return response;
}
這有時會花費幾秒鐘的時間,客戶端必須等待響應。這很痛。
有什麼方法可以發送回覆並在後臺執行電子郵件?
查看答案:http://stackoverflow.com/a/17758416/4275882 –