我来自Perl背景,正在使用Spring编写我的第一个Java MVC Web应用程序。Spring MVC后台进程
我的webapp允许用户通过调用第三方SOAP服务来提交应用程序同步处理的订单。该项目的下一阶段是允许用户提交批量订单(例如包含500行的CSV)并异步处理它们。这里是我现有的控制器的一个片段:
@Controller
@Service
@RequestMapping(value = "/orders")
public class OrderController {
@Autowired
OrderService orderService;
@RequestMapping(value="/new", method = RequestMethod.POST)
public String processNewOrder(@ModelAttribute("order") Order order, Map<String, Object> map) {
OrderStatus orderStatus = orderService.processNewOrder(order);
map.put("orderStatus", orderStatus);
return "new";
}
}
我计划建立一个新的@RequestMapping
处理传入的CSV和修改OrderService
能够打散的CSV,坚持个别订单到数据库中。
我的问题是:在MVC Spring应用程序中创建后台工作人员的最佳方法是什么?理想情况下,我将有5个线程处理这些订单,最有可能来自队列。我已阅读@Async
或将Runnable
提交给SimpleAsyncTaskExecutor
bean,我不知道该走哪条路。一些例子会真的帮助我。
注意:这里'@ Service'注解是多余的。 – sp00m
如果后台进程失败会发生什么?也就是说,我上传了一个文件,导入失败,出于某种原因。然后会发生什么?如果你需要能够重新启动导入过程,Spring Batch可能是有意义的。否则,还有其他一些选择。 –