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

📄 event.java.svn-base

📁 java编写的可以按照预先定义的各种时间策略
💻 SVN-BASE
字号:
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;

import org.w3c.dom.*; 

import javax.xml.parsers.*; 

public class event extends Thread {
	public String name;
	public String Agent_ID;
	public String script;
	public String result;
	public String web_service_url;
	public String TimeTable;
	public String conf_path;
	public String script_path;
	public String result_path;
	public int	delay;
	public int  result_format_begin;
	public int  result_total;
	
	public XMLManage eventxml=new XMLManage();
	public MyHttpClient myhttp=new MyHttpClient();
	public Hashtable result_format = new Hashtable();

	public void SetResultFormat(String first,Vector second){
		System.out.println(" "+first+":"+second);
		result_format.put(first,second);
	}
	public void SetResultValue(String first,String value,int num){
		Vector v=(Vector)result_format.get(first);
		v.set(num,value);
	}
	public String GetResultValue(String first,String value,int num){
		Vector v=(Vector)result_format.get(first);
		return (String)v.get(num);
	}
	public void GetPara()
	{
		File f=new File("agent.xml");
		DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); 
		DocumentBuilder builder=factory.newDocumentBuilder(); 
		Document doc = builder.parse(f); 
		NodeList nl = doc.getElementsByTagName("event");
		int j=nl.getLength();
		for (int i=0;i<j;i++){
			event m_event=new event();
			m_event.web_service_url=agent.m_webservice_url;
			m_event.Agent_ID=agent.m_agent_id;
			System.out.println("name:" + doc.getElementsByTagName("name").item(i).getFirstChild().getNodeValue()); 
			m_event.name=doc.getElementsByTagName("name").item(i).getFirstChild().getNodeValue();
			System.out.println(" delay:" + doc.getElementsByTagName("delay").item(i).getFirstChild().getNodeValue());
			m_event.delay=Integer.parseInt(doc.getElementsByTagName("delay").item(i).getFirstChild().getNodeValue());
			System.out.println(" timetable:" + doc.getElementsByTagName("timetable").item(i).getFirstChild().getNodeValue()); 
			m_event.TimeTable=doc.getElementsByTagName("timetable").item(i).getFirstChild().getNodeValue();
			System.out.println(" script:" + doc.getElementsByTagName("script").item(i).getFirstChild().getNodeValue()); 
			m_event.script=doc.getElementsByTagName("script").item(i).getFirstChild().getNodeValue();
			System.out.println(" result:" + doc.getElementsByTagName("result").item(i).getFirstChild().getNodeValue());
			m_event.result=doc.getElementsByTagName("result").item(i).getFirstChild().getNodeValue();
			System.out.println(" beginline:" + doc.getElementsByTagName("beginline").item(i).getFirstChild().getNodeValue());
			m_event.result_format_begin=Integer.parseInt(doc.getElementsByTagName("beginline").item(i).getFirstChild().getNodeValue());
			Element element=(Element)doc.getElementsByTagName("result_format").item(i);
			nl=element.getElementsByTagName("parameter");
			m_event.result_total=nl.getLength();
			for (int z=0;z<nl.getLength();z++){
				System.out.println(" parameter:" + element.getElementsByTagName("parameter").item(z).getFirstChild().getNodeValue());
				System.out.println(" row:" + element.getElementsByTagName("parameter").item(z).getAttributes().getNamedItem("row").getNodeValue());
				Vector v=new Vector();
				v.add(element.getElementsByTagName("parameter").item(z).getFirstChild().getNodeValue());
				v.add("");
				v.add(element.getElementsByTagName("parameter").item(z).getAttributes().getNamedItem("row").getNodeValue());
				m_event.SetResultFormat(Integer.toString(z),v);
			}
			agent.eventlist.put(Integer.toString(i),m_event);
			m_event.start();
		} 

	}

	public void GetString(String sr){
		String []srsplit=sr.split("\\s+");
		
		Object elm=eventxml.AddElement("list");
		String row;
		for (int i=0;i<result_total;i++){
			Vector v=(Vector)result_format.get(Integer.toString(i));
			row=(String)v.get(2);
			if (Integer.parseInt(row)>=srsplit.length) continue;
			SetResultValue(Integer.toString(i),srsplit[Integer.parseInt(row)],1);
			eventxml.AddElementChild(elm,(String)v.get(0),(String)v.get(1));
			System.out.println(result_format.get(Integer.toString(i)));
		}
		eventxml.AddElementfinish(elm);
	}
	public boolean iftimebegin(String m_time){
		boolean result=false;
		int nowtotal=0,needtotal=0;
		Date nowTime=new Date(System.currentTimeMillis());
		SimpleDateFormat sDateFormat=new SimpleDateFormat("ss mm HH dd MM F yyyy");
		String todayTime=sDateFormat.format(nowTime);
		String m_sp[]=m_time.split(" ");
		String m_today_sp[]=todayTime.split(" ");
		for (int i=0;i<m_sp.length;i++){
			if (m_sp[i].equals("?")){
				continue;
			}
			else if( m_sp[i].equals("*") ){
				nowtotal+=1;
				needtotal+=1;
			}
			else{
				needtotal+=1;
				String m_split[]=m_sp[i].split(",");
				for (int j=0;j<m_split.length;j++){
					if (Integer.parseInt(m_today_sp[i])==Integer.parseInt(m_split[j])){
						nowtotal+=1;
						break;
					}
				}
			}
		}
		if (result)	System.out.println(name+" "+todayTime);
		if (nowtotal==needtotal)
			return true;
		else
			return false;
	}
	
	public void run(){
		eventxml.CreatXML(name,Agent_ID);
		Runtime rn=Runtime.getRuntime(); 
		Process p=null;
		while(true){
			if (iftimebegin(TimeTable)){	
				try {
				System.out.println(name+" begin run script");
				p=rn.exec(script);
				
				if (result.equals("null")){
					InputStream in = p.getInputStream();
					BufferedReader br= new BufferedReader(new InputStreamReader(in));

		           String str;
		           int i=0;
		           while ((str = br.readLine()) != null) {
		        	   if (i>=result_format_begin && str.length()>0){
		        		   GetString(str);
		        	   }
	                   System.out.println(str);
		        	   i++;
		           }

					try{
					    p.waitFor();
					    br.close();
					    in.close();
					}catch (Exception e){
					    e.printStackTrace();
					}					
				}
				else
				{
					p.waitFor();
					
					File f=new File(result);
			        if(!f.exists())
			        	System.out.println("result not find");
			        else
			        {
			        	BufferedReader br = new BufferedReader(new FileReader(f));
			            String str;
			            int i=1;
			            while ((str = br.readLine()) != null) {
			            	if (i>=result_format_begin && str.length()>0){
			            		GetString(str);
			            	}
//  		                    System.out.println(str);
			            	i++;
			            }
			            br.close();
			          f.delete();
			        }
				}
				myhttp.MyPost(web_service_url,eventxml.outputToString(eventxml.Doc));
//				eventxml.SaveXML(name+".xml");
				eventxml.DeleElementAll();
				} catch(Exception e) {
					System.out.println(e);
				}
			}
			
			try {
				Thread.sleep(delay);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

⌨️ 快捷键说明

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