开发者社区 问答 正文

怎样在response.getWriter() 执行完,结果就及时返回

Java代码 收藏代码

@RequestMapping("xxx.do")  
    public void test(HttpServletResponse response, String pcid) {  
        this.sendDirectToClient(response, CONTENTTYPE_JSON, CHARSET_UTF8, json.toString());  
        //结果集先返回、短信后置发送  
        sMSService.sendSmsTask(data);  
    }

怎样让this.sendDirectToClient这句执行完,前台ajax 就收到后台返回的结果,sendDirectToClient方法如下 Java代码 收藏代码

PrintWriter writer = response.getWriter();  
            writer.write(s);  
            writer.flush();

但调试时,总是等到test方法执行完,前台才返回结果, 想要的是 sendDirectToClient 执行完结果就返回, 后台接着执行 sMSService.sendSmsTask

展开
收起
长安归故里. 2020-01-07 13:35:03 1631 分享 版权
1 条回答
写回答
取消 提交回答
  • 如果访问量不是特别的大,可以另外起一个线程来sMSService.sendSmsTask;

    @RequestMapping("xxx.do")  
        public void test(HttpServletResponse response, String pcid) {  
            this.sendDirectToClient(response, CONTENTTYPE_JSON, CHARSET_UTF8, json.toString());  
           Thread t = new Thread(new Runnable() { 
    
    @Override 
    public void run() { 
    sMSService.sendSmsTask(data);  
    } 
    }); 
    
    t.start(); 
        }
    
    2020-01-07 13:35:19
    赞同 展开评论
问答分类:
问答地址: