问题描述
此过程每天运行数百次。当服务器主机每周一次在服务器上运行一次清理时,由于线程被挂起,这将导致系统关闭长达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 (将#修改为@)