<?xml version="1.0"?>
<!-- xxxtask, not xxxChecker -->
<service>
<item>
<task>HostAliveTask</task>
<strategy>repeat</strategy>
<repeatFreq>180</repeatFreq>
</item>
<item>
<task>WebpageRespTask</task>
<strategy>repeat</strategy>
<repeatFreq>180</repeatFreq>
</item>
<item>
<task>AlarmNumTask</task>
<strategy>daily</strategy>
<dailyRuntime>16:45:00</dailyRuntime>
</item>
</service>
import global.Global;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.EndElement;
import javax.xml.stream.events.StartElement;
import javax.xml.stream.events.XMLEvent;
import org.apache.log4j.Logger;
/**
* schedule the checking task.
*/
public class Scheduler {
// private static final String TAG_SERVICE = "service";
private static final String TAG_ITEM = "item";
private static final String TAG_TASK = "task";
private static final String TAG_STRATEGY = "strategy";
private static final String STRATEGE_REPEAT = "repeat";
private static final String STRATEGE_DAILY = "daily";
private static final String TAG_REPEATFREQ = "repeatFreq";
private static final String TAG_DAILYRUNTIME = "dailyRuntime";
private static Logger _logger = Logger.getLogger(Scheduler.class);
void readConfig(){
try {
// First create a new XMLInputFactory
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
inputFactory.setProperty("javax.xml.stream.isCoalescing", true); //否则读取多行数据时出问题
// Setup a new eventReader
InputStream in = new FileInputStream(Global.SERVICE_CONFIGURE_FILE);
XMLEventReader eventReader = inputFactory.createXMLEventReader(in);
// One specification
String task = null;
String strategy = null;
Integer freq = null;// by second
// for daily job
Date firstTime = null;
Calendar calendar = Calendar.getInstance();
// Read the XML document
while (eventReader.hasNext()) {
XMLEvent event = eventReader.nextEvent();
if (event.isStartElement()) {
StartElement startElement = event.asStartElement();