gpt4 book ai didi

java - 在在线应用程序中使用Java Executor服务

转载 作者:行者123 更新时间:2023-12-01 19:45:12 25 4
gpt4 key购买 nike

我有在线申请的一项功能。我需要在生成收据后将收据邮寄给客户。我的问题是邮件功能需要更多时间近20至30秒,客户在网上交易时无法等待很长时间。

所以我使用java ExecutorService来独立运行邮件服务[sendMail],并将响应页面返回给客户,无论邮件是否发送。

在线应用程序中使用ExecutorService是否正确[Http请求和响应]。下面是我的代码。请多多指教。

@RequestMapping(value="/generateReceipt",method=RequestMethod.GET)
public @ResponseBody ReceiptBean generateReceipt(HttpServletRequest httpRequest,HttpServletResponse httpResponse) {

// Other codes here
...
...

I need run below line independently, since it takes more time. so commeneted and wrote executor service
//mailService.sendMail(httpRequest, httpResponse, receiptBean);

java.util.concurrent.ExecutorService executorService = java.util.concurrent.Executors.newFixedThreadPool(10);
executorService.execute(new Runnable() {
ReceiptBean receiptBean1;
public void run() {
mailService.sendMail(httpRequest, httpResponse, receiptBean);
}
public Runnable init(ReceiptBean receiptBean) {
this.receiptBean = receiptBean1;
return(this);
}
}.init(receiptBean));
executorService.shutdown();

return receiptBean;
}

最佳答案

你可以做到这一点,尽管我不希望这段代码出现在 Controller 类中,而是出现在单独的(关注点分离和全部)中。

不过,既然你好像用的是Spring,那你不妨用他们的scheduling framework .

关于java - 在在线应用程序中使用Java Executor服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53627130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com