[英]Spring REST client - force response before method finishes
我正在用Spring Web 4.0.5編寫REST服務,一種被稱為方法的方法是發送電子郵件(帶有javax郵件)。 發送郵件需要一些時間,但是我希望能夠在此方法完成之前發送HTTP響應(無論響應是什么,例如200)-在發送郵件之前。 可能嗎 最好沒有多線程?
@RestController
@RequestMapping(value = "/mails", produces = "application/json")
public class RestMailService{
@Autowired
MailService mailService;
@RequestMapping(value="/test", method = RequestMethod.GET)
public void sendMail(){
mailService.sendMail();
}
}
我相信所有可能的解決方案都包括多線程。 該線程將由您直接啟動,或者隱藏在消息傳遞或類似內容的后面。
如果畢竟要使用多線程,請使用一些Executor
而不是下面建議的new Thread(...).start()
我還要注意,在操作完成之前返回HTTP 200可能會使用戶感到困惑,因為代碼表明操作成功,而實際上操作甚至還沒有開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.