⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cronssetservice.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 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 + -