📄 cronssetservice.java
字号:
package cn.jsprun.service.otherset;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import cn.jsprun.dao.CronsDao;
import cn.jsprun.domain.Crons;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Cache;
import cn.jsprun.utils.Common;
import cn.jsprun.utils.FinalProperty;
import cn.jsprun.utils.Log;
public class CronsSetService {
public boolean addCrons(Crons crons){
return ((CronsDao)BeanFactory.getBean("cronsSetDao")).addCrons(crons);
}
public List<Crons> queryAllCrons(){
return ((CronsDao)BeanFactory.getBean("cronsSetDao")).queryAllCrons();
}
public Crons queryCronsById(Short id){
return ((CronsDao)BeanFactory.getBean("cronsSetDao")).queryCronsById(id);
}
public List<Crons> queryCronsByCondition(String title, String startTime,String type,String orderBy){
String sqlStatement = "select * from jrun_crons ";
StringBuffer sqlSb = new StringBuffer();
if(title!=null && !title.equals("")){
sqlSb.append(" where name like '%" + title + "%' ");
}
if(!startTime.equals("") && !startTime.equals("0")){
Integer st = Integer.parseInt(((new Date().getTime() - Long.parseLong(startTime+"000"))+"").substring(0,10));
if(sqlSb.toString().trim()==null || sqlSb.toString().trim().equals("")){
sqlSb.append(" where lastrun > " + st + " ");
}else{
sqlSb.append(" and nextrun > " + st + " ");
}
}
if(!type.equals("") && !type.equals("0")){
if(sqlSb.toString().trim()==null || sqlSb.toString().trim().equals("")){
sqlSb.append(" where type = '" + type + "' ");
}else{
sqlSb.append(" and type = '" + type + "' ");
}
}
if(!orderBy.equals("")){
sqlSb.append(" order by " + orderBy);
}
sqlStatement = sqlStatement + sqlSb.toString();
return ((CronsDao)BeanFactory.getBean("cronsSetDao")).queryCronsByCondition(sqlStatement);
}
public boolean updateCrons(Crons crons){
return ((CronsDao)BeanFactory.getBean("cronsSetDao")).updateCrons(crons);
}
public boolean deleteCrons(List<Crons> cronsListDelete){
return ((CronsDao)BeanFactory.getBean("cronsSetDao")).delAnyCrons(cronsListDelete);
}
public boolean updateCrons(List<Crons> cronsListUpdate){
return ((CronsDao)BeanFactory.getBean("cronsSetDao")).updateCrons(cronsListUpdate);
}
public synchronized void cronsRun(Integer timestamp,String relPath,HttpServletRequest request,HttpServletResponse response){
CronsDao cronsDao = ((CronsDao)BeanFactory.getBean("cronsSetDao"));
HttpSession session = request.getSession();
ServletContext context = session.getServletContext();
Connection connection = null;
List<Map<String,String>> cronsList = null;
try{
connection = cronsDao.getConnection();
cronsDao.begingTransaction(connection, Connection.TRANSACTION_REPEATABLE_READ);
cronsList = cronsDao.getRunningCronsInfo(connection, timestamp);
}catch(Exception exception){
exception.printStackTrace();
cronsDao.rollbackTransaction(connection);
cronsDao.closeConnection(connection);
return ;
}
File file = null;
int cls = cronsList.size();
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < cls; i++) {
Map<String,String> crons = cronsList.get(i);
String fileName = crons.get("filename");
file = new File(context.getRealPath(FinalProperty.CRONS_URI+fileName));
if(!file.isFile()){
Log.writelog(context.getRealPath("/"), "errorlog", timestamp+"\tCRON\t"+session.getAttribute("jsprun_userss")+"\t"+(crons.get("name")+" : Cron script("+fileName+") not found or syntax error").replaceAll("\r|\n", " "));
buffer.append(crons.get("cronid")+",");
continue;
}
RequestDispatcher dispatcher = request.getRequestDispatcher("/include/crons/" + fileName);
request.setAttribute("crons", crons);
request.setAttribute("connection", connection);
try {
dispatcher.include(request, response);
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
int bl = buffer.length();
if(bl>0){
try{
cronsDao.execute(connection,"UPDATE jrun_crons SET available='0' WHERE cronid IN ("+buffer.substring(0,bl-1)+")");
}catch(SQLException exception){
exception.printStackTrace();
cronsDao.rollbackTransaction(connection);
cronsDao.closeConnection(connection);
return ;
}
}
cronsDao.commitTransaction(connection);
cronsDao.closeConnection(connection);
Cache cache = new Cache(relPath);
try {
cache.updatecache("settings");
} catch (Exception e) {
e.printStackTrace();
}
}
public synchronized void cronRunning(HttpServletRequest request,HttpServletResponse response,Object cronsid){
CronsDao cronsDao = ((CronsDao)BeanFactory.getBean("cronsSetDao"));
HttpSession session = request.getSession();
ServletContext context = session.getServletContext();
Connection connection = null;
Map<String,String> crons = null;
try{
connection = cronsDao.getConnection();
cronsDao.begingTransaction(connection, Connection.TRANSACTION_REPEATABLE_READ);
crons = cronsDao.getRunningCronInfo(connection, cronsid);
}catch(Exception exception){
exception.printStackTrace();
cronsDao.rollbackTransaction(connection);
cronsDao.closeConnection(connection);
return ;
}
String fileName = crons.get("filename");
File file = new File(context.getRealPath(FinalProperty.CRONS_URI+fileName));
if(!file.isFile()){
Log.writelog(context.getRealPath("/"), "errorlog", Common.time()+"\tCRON\t"+session.getAttribute("jsprun_userss")+"\t"+(crons.get("name")+" : Cron script("+fileName+") not found or syntax error").replaceAll("\r|\n", " "));
try{
cronsDao.execute(connection,"UPDATE jrun_crons SET available='0' WHERE cronid='"+crons.get("cronid")+"'");
}catch(SQLException exception){
exception.printStackTrace();
cronsDao.rollbackTransaction(connection);
cronsDao.closeConnection(connection);
return ;
}
}else{
RequestDispatcher dispatcher = request.getRequestDispatcher("/include/crons/"+fileName);
request.setAttribute("crons", crons);
request.setAttribute("connection", connection);
try {
dispatcher.include(request, response);
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
cronsDao.commitTransaction(connection);
cronsDao.closeConnection(connection);
Cache cache=new Cache(context.getRealPath("/"));
try {
cache.updatecache("settings");
} catch (Exception e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -