在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>值

解决方案 »

  1.   

    可以用dom4j解析xml文件撒,读写xml很方面,
    然后前台用户设置时间,用java把设定的时间转换成Quartz认识的规则
    应该不是很难
      

  2.   

    XML文件如下:
    <?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值啊
      

  3.   

    LZ我也遇到你这样的类似问题,不知道你是怎么解决的.有时间交流一下.Mail TO Me::[email protected] 
      

  4.   

    你不用把trigger写在XML里啊,直接写程序里动态改不更好
    Scheduler sch = (Scheduler) context.getBean("...");
    sch.scheduleJob(newJob..., newTrigger...);
      

  5.   


    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){ 
                 
            } 
      

  6.   

     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){ 
                          } 
          } 
      

  7.   

    http://fluagen.blog.51cto.com/146595/32215 这上面的绝对实用