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

📄 startuplistener.java

📁 OBPM是一个开源
💻 JAVA
字号:
package cn.myapps.base.web.listener;

import java.util.Collection;
import java.util.Date;
import java.util.Iterator;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

import cn.myapps.constans.Environment;
import cn.myapps.core.task.ejb.Task;
import cn.myapps.core.task.ejb.TaskConstants;
import cn.myapps.core.task.ejb.TaskProcess;
import cn.myapps.init.InitSystem;
import cn.myapps.util.ProcessFactory;
import cn.myapps.util.timer.TimeRunnerAble;
import cn.myapps.util.timer.TimerRunner;

import com.opensymphony.webwork.ServletActionContext;

public class StartupListener extends HttpServlet implements
		ServletContextListener {
	// Notification that the web application is ready to process requests

	private TaskProcess getTaskProcess() throws ClassNotFoundException {
		return (TaskProcess) ProcessFactory.createProcess(TaskProcess.class);
	}

	public void contextInitialized(ServletContextEvent sce) {

		try {
			// 初始化用户以及资源URL
			InitSystem.init();

			// 初始化应用真实路径
			String realPath = sce.getServletContext().getRealPath("/");

			Environment evt = new Environment();
			evt.setWebcontextBasePath(realPath);
			sce.getServletContext().setAttribute(Environment.class.getName(),
					evt);

			// 获取所有任务
			Collection taskList = getTaskProcess().doSimpleQuery(null);
			for (Iterator iter = taskList.iterator(); iter.hasNext();) {
				Task task = (Task) iter.next();
				if (!(task.getStartupType() == TaskConstants.STARTUP_TYPE_AUTO)) {
					continue;
				}

				long delay = 60 * 1000;

				TimerRunner.registerJSService(task.getApplicationid());

				// 根据任务内容新建任务
				TimeRunnerAble job = TimerRunner.createTimeRunnerAble(task,
						getTaskProcess());

				// 把运行的任务放进runningList map中
				TimerRunner.runningList.put(task, job);
				TimerRunner.registerTimerTask(job, new Date(), delay);

			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void contextDestroyed(ServletContextEvent sce) {
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -