Java中的异步编程 - 后台进程

时间:2017-02-21 00:30:56

标签: multithreading asynchronous

我的Java Web应用程序中有一个REST-API。这有一种方法可以从客户的Android应用程序(客户端)接收订单,并将(在一系列任务之后,例如价格计算等)发送回客户端。

event.guests

获取身份验证等会话的任务必须同步完成,当然。 '因为客户的反应取决于它的成功或失败。到目前为止一直很好。

在此方法结束时,客户端会获得有关其订单请求状态的guest.event

    @POST
    @Path("order")
    @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
    public OrderResponse takeOrder(OrderRequest request
    ) throws IOException {
        OrderResponse response = new OrderResponse();

        String token = request.getTokenString();
        CustomerSession session = sessionPool.getSession(token);

        if (session != null) {

            OrderHeader order = new OrderHeader();
            order.setFkOrderHeaderCustomerID(session.getFkCustomerID());
            order.setOrderCreationDate(new Date());

这有时需要几秒钟,客户端必须等待响应。那伤害了。

有没有办法发送回复并在后台发送电子邮件?

1 个答案:

答案 0 :(得分:1)

        Thread mailingThread = new Thread() {
            @Override
            public void run() {
                try {
                    Email email = EmailGenerator.createOrderEmail(order);
                    emailService.send(email);
                } catch (MessagingException | IOException ex) {
                    Logger.getLogger(CustomerREST.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        };
        mailingThread.start();
  

Thaks Kyle!这似乎做了我的尝试!