微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

进程完成后,如何防止线程挂起java?

如何解决进程完成后,如何防止线程挂起java?

此过程每天运行数百次。当服务器主机每周一次在服务器上运行一次清理时,由于线程被挂起,这将导致系统关闭长达10分钟,并且通常会自行更正,但有时必须重新启动服务器。如何确保每次完成后都关闭线程?

@SlingServlet(paths =“ / bin / updateoliccart”,methods =“ POST”,Metatype = true) 公共类UpdateOLICCart扩展了SlingallMethodsServlet {

private static final long serialVersionUID = -7900366622715395681L;

protected final Logger log = LoggerFactory.getLogger(UpdateOLICCart.class);

@Reference
private ProcessApplication PA;

@Reference
private UpdatePayStatus updatePayStatus;

@Override
protected void doPost(final SlingHttpServletRequest req,final SlingHttpServletResponse resp) throws IOException   {
    Date dateStart = new Date();
    
    HttpSession httpsession = req.getSession();

    if(httpsession.isNew()){
        log.error("Session was broken");
        resp.sendRedirect("/content/wadoh/posterror.html");
    }else{

        String userType = (String)httpsession.getAttribute("userType");

        String draftIDFull = (String)httpsession.getAttribute("draftIDFull");   
        
        String payStatus = updatePayStatus.getDraftProperty(draftIDFull,"paystatus",req.getRemoteUser());
        
        log.error("The paystatus in Update OLIC Cart Servlet for user  " + req.getRemoteUser() + " is " + payStatus);


        if (!payStatus.equals("paymentreceived")){
            
            if(userType.contains("facility")){//begin facility applicant
                resp.getWriter().write(PA.updateFacilityCart(req).toString());
                resp.getWriter().flush();
                resp.getWriter().close();
            }
            else if(userType.contains("applicant")){//begin singular applicant
                resp.getWriter().write(PA.updateApplicantCart(req).toString());
                resp.getWriter().flush();
                resp.getWriter().close();
            }
            else{
                //unexpected result
                log.error("Unexpected User Type");
            }
        }
        else{
            resp.sendRedirect("/content/wadoh/posterror.html");
        }
    }
    
    Date dateStop =  new Date();
    long diff = dateStop.getTime() - dateStart.getTime();

    long diffSeconds = diff / 1000 % 60;
    log.info("UpdateOLICCart Servlet complete for:" + req.getRemoteUser() + " Completed in:" + diffSeconds);
    
    
}

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。