如何设置正确的调度程序时间

gre*_*rep 1 ejb quartz-scheduler java-ee ejb-3.0 ejb-3.1

我可以使用XML调用EJB Scheduler(或者我可以使用@Schedule注释).比如这样的事情:[ejb-jar.xml]

   <?xml version="1.0" encoding="UTF-8"?>
    <ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" version="3.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd">
        <enterprise-beans>
            <session>
                <ejb-name>[name]</ejb-name>
                <ejb-class>[path]</ejb-class>
                <session-type>Stateless</session-type>
                <timer>
                    <schedule>
                        <minute>*/30</minute>
                        <hour>*</hour>
                        <month>*</month>
                        <year>*</year>
                    </schedule>
                    <timeout-method>
                        <method-name>[method name]</method-name>
                    </timeout-method>
                </timer>
            </session>
        </enterprise-beans>
    </ejb-jar>
Run Code Online (Sandbox Code Playgroud)

如果我需要在每天中午运行此调度程序,我应该写这样的东西吗?

  <schedule>
      <minute>*</minute>
      <hour>0</hour>
      <month>*</month>
      <year>*</year>
  </schedule>
Run Code Online (Sandbox Code Playgroud)

如果我需要凌晨01:00,这是正确的吗?

  <schedule>
      <minute>*</minute>
      <hour>1</hour>
      <month>*</month>
      <year>*</year>
  </schedule>
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

Cam*_*ilo 9

午夜的每一天都会是这样的:

<schedule>
  <minute>0</minute>
  <hour>0</hour>
</schedule>
Run Code Online (Sandbox Code Playgroud)

每天凌晨1:00:

<schedule>
  <minute>0</minute>
  <hour>1</hour>
</schedule>
Run Code Online (Sandbox Code Playgroud)

请记住,这*是一个通配符,表示给定属性的所有可能值,我省略了月份和年份,因为它们的默认值是*,您实际上可以省略分钟,因为它的默认值是0.

每天的每一分钟:

<schedule>
  <minute>*</minute>
  <hour>*</hour>
</schedule>
Run Code Online (Sandbox Code Playgroud)

每天每分钟每10秒钟:

<schedule>
  <second>*/10</second>
  <minute>*</minute>
  <hour>*</hour>
</schedule>
Run Code Online (Sandbox Code Playgroud)

x/y意味着y从每个开始x,并且*/y意味着y从每个开始0.

从您的示例中可以看出:

<schedule>
  <minute>*</minute>
  <hour>0</hour>
  <month>*</month>
  <year>*</year>
</schedule>
Run Code Online (Sandbox Code Playgroud)

指上午12:00至上午12:59之间每分钟的每一天,即12:00,12:01,12:02 ...

有关详细信息,请查看此链接