在web页面输入时间规则,然后通过JAVA类实现解析,
得到corn时间规则
该时间规则可存入数据库中,目的是为了生成历史日志;
也可以存入XML文件中,我觉得没必要存储数据库中,只想把动态获得得值
存入Job.xml中,也就是修改
<trigger>
<cron>
<name>testTrim</name>
<group>DEFAULT</group>
<job-name>quartzExcuteJob</job-name>
<job-group>DEFAULT</job-group>
<cron-expression>1/12 * * * * ?</cron-expression>
</cron>
</trigger>
中的<cron-expression>值
得到corn时间规则
该时间规则可存入数据库中,目的是为了生成历史日志;
也可以存入XML文件中,我觉得没必要存储数据库中,只想把动态获得得值
存入Job.xml中,也就是修改
<trigger>
<cron>
<name>testTrim</name>
<group>DEFAULT</group>
<job-name>quartzExcuteJob</job-name>
<job-group>DEFAULT</job-group>
<cron-expression>1/12 * * * * ?</cron-expression>
</cron>
</trigger>
中的<cron-expression>值
然后前台用户设置时间,用java把设定的时间转换成Quartz认识的规则
应该不是很难
<?xml version='1.0' encoding='utf-8'?>
<quartz xmlns="http://www.opensymphony.com/quartz/JobSchedulingData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
overwrite-existing-jobs="true">
<job>
<job-detail>
<name>quartzExcuteJob</name>
<group>DEFAULT</group>
<description>testQuartz</description>
<job-class>jco.QuartzExcuteJob</job-class>
</job-detail>
<trigger>
<cron>
<name>testTrim</name>
<group>DEFAULT</group>
<job-name>quartzExcuteJob</job-name>
<job-group>DEFAULT</job-group>
<cron-expression>1/12 * * * * ?</cron-expression>
</cron>
</trigger>
</job>
</quartz>
如何修改cron-expression的值?
我这样写得:
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(inputXml);
List list = document.selectNodes("/trigger/cron");
Iterator iter = list.iterator();
System.out.println("tttttt"+iter.hasNext()+list.size());//打印出我得到得list为空
while (iter.hasNext()) {
Element element = (Element) iter.next();
System.out.println(element.getStringValue());
Iterator iterator = element.elementIterator("cron-expression");
while (iterator.hasNext()) {
Element lastNameElement = (Element) iterator.next();
System.out.println(lastNameElement.getText());
if (lastNameElement.getText().equals("1/12 * * * * ?"))
lastNameElement.setText(cronExpression);
}
}
帮忙看看,如何获得cron-expression值啊
Scheduler sch = (Scheduler) context.getBean("...");
sch.scheduleJob(newJob..., newTrigger...);
public static void process(Element element){
if(inspect(element)){
List content=element.getContent();//取元素的所有内容
Iterator iterator=content.iterator();
while(iterator.hasNext()){
Object o=iterator.next();
if(o instanceof Element){//如果是子元素
Element child=(Element)o;
process(child);//递归调用
}
}
}
} public static boolean inspect(Element element){
String qualifiedName=element.getQualifiedName();
if(element.getName().equals("cron-expression")){
//这里找到了你要的节点。
System.out.println(qualifiedName+":"+element.getText());
return false;
}
return true;
} public static void main(String[] args){
String url="QuazXml.xml";
try{
SAXBuilder parser=new SAXBuilder();
Document document=parser.build(url);
process(document.getRootElement());
}catch(JDOMException e){
}catch(IOException e){
}
if(inspect(element)){
List content=element.getContent();//取元素的所有内容
Iterator iterator=content.iterator();
while(iterator.hasNext()){
Object o=iterator.next();
if(o instanceof Element){//如果是子元素
Element child=(Element)o;
process(child);//递归调用
}
}
}
} public static boolean inspect(Element element){
String qualifiedName=element.getQualifiedName();
if(element.getName().equals("cron-expression")){//找到需要的节点。
System.out.println(qualifiedName+":"+element.getText());
return false;
}
return true;
} public static void main(String[] args){ String url="QuazXml.xml";
try{
SAXBuilder parser=new SAXBuilder();
Document document=parser.build(url);
process(document.getRootElement());
}catch(JDOMException e){ }catch(IOException e){
}
}