簡體   English   中英

Spring REST客戶端-在方法完成之前強制響應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM