因此,在下面的代码中,当我yService.performAction()
对许多项目执行此操作时,会花费太多时间。
有人建议我尝试使用线程来加快速度,所以我上网查看并发现从控制器生成新的子线程是不可取的,因为它可能会弄乱 Java EE 容器线程池。如果我的yService.performAction(
) 需要时间来运行并且需要使其快速运行,我有什么选择?
许多人一直建议使用 Quartz 来生成新线程。我不确定我是否想做那么复杂的事情。如何在单独的线程中运行该特定服务?有什么简单的方法吗?
@Controller
@RequestMapping("/test")
public class TestController {
private static final Logger logger = Logger.getLogger(TestController.class);
@Autowired
XService xService;
@Autowired
private YService yService;
@RequestMapping(method = { RequestMethod.GET })
public void testCheck(HttpServletRequest request, HttpServletResponse response) throws IOException {
try {
List<SL> somelist = XService.getAllX();
StringBuffer status = new StringBuffer("SUCCESS\n\n");
for (SL sl : somelist) {
boolean flag = false;
try {
flag = yService.performAction(sl);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
}
response.setStatus(HttpServletResponse.SC_OK);
response.getWriter().write(status.toString());
} catch (Exception e) {
logger.error(e.getMessage(), e);
response.getWriter().write("FAILED");
}
}
}