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

📄 task.java

📁 一个用于监控WEB服务器和数据库服务器的客户端程序。
💻 JAVA
字号:
/**
 * <p>Title: 卓博营运支撑系统</p>
 *
 * <p>Description: 为本企业内部运作提供支撑,为企业資源的E化管理提供解決方案</p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: 卓博信息科技有限公司</p>
 *
 * @author Henry
 * @version 1.0
 */
package com.jobcn.control;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Date;
import java.util.TimerTask;
import javax.swing.JOptionPane;
import javax.swing.text.AttributeSet;

import com.jobcn.ui.MainFrame;

/**  Task.java
 *   function: 任务类
 *   describe: 定义某一个任务的执行
 */

public class Task extends TimerTask {

	public Task() {}
	
	public Task(MainFrame mainFrame, ArrayList stepData) {
		this.mainFrame = mainFrame;
		this.stepData = stepData;
	}
	
	public Task clone() {
		Task result = new Task();
		result.ID = ID;
		result.taskName = taskName;
		result.mainFrame = mainFrame;
		result.stepData = stepData;
		result.setCcMail(ccMail);
		result.setEndDate(endDate);
		result.setExecCode(execCode);
		result.setManagerMail(manageMail);
		return result;
	}
	
	@Override
	public void run() {
		if (execCode == 3) { // 当重复执行任务时
			Date current = new Date();
			if (current.after(endDate)) {
				cancel();
				String currentStr = Common.getDateString(current);
				String endDateStr = Common.getDateString(endDate);
				System.out.println("当前时间:"+currentStr+"已到结束时间:"+endDateStr);
				JOptionPane.showMessageDialog(mainFrame, "当前时间:"+currentStr+"已到结束时间:"+endDateStr);
				return;
			}
		}
//		 任务的实际执行 execTask();
		execTask();
	}

	private void execTask() {
		for(int i=0;i<stepData.size();i++){
			String[] oneStep = (String[])stepData.get(i);// 每一执行步骤的各个属性值
			// 执行该任务的某个步骤,oneStep[4]为用户自定义的需要执行的某个类。
			try {
				Class c = Class.forName(oneStep[4]);
				Method getMessage = 
					c.getMethod("getTaskExecuteInfo", new Class[]{
							String.class, int.class, String.class, String[].class});
				Object[] messages = (Object[])getMessage.invoke(null, new Object[]{
						mainFrame.taskListName, ID, taskName, new String[]{manageMail, ccMail}});
				mainFrame.getProxy().insertInstantInfo(
						(Boolean)messages[0], (String)messages[1]);
			} catch (Exception e) {
				e.printStackTrace();
				cancel();
				JOptionPane.showMessageDialog(mainFrame, "调用任务时出错,任务已中止!");
				break;
			}
		}
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
	}

	private int ID;
	private MainFrame mainFrame;
	private ArrayList stepData;
	private Date endDate;
	private int execCode;
	private String taskName, manageMail, ccMail;

	public void setTaskName(String taskName) {
		this.taskName = taskName;
	}

	public void setCcMail(String ccMail) {
		this.ccMail = ccMail;
	}

	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}

	public void setExecCode(int execCode) {
		this.execCode = execCode;
	}

	public void setManagerMail(String manageMail) {
		this.manageMail = manageMail;
	}

	public void setID(int id) {
		ID = id;
	}
}






⌨️ 快捷键说明

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