0

我在 tomcat 7 上的 centos 7 中有一个 java web 服务,我使用这个服务来更新数据库。我需要定期调用它的方法,例如:createCustomer 每 12 小时调用一次,createOrder 每 3 分钟调用一次,等等。

我如何编写此触发器以及此代码在何处运行(在同一服务器或其他地方)

4

1 回答 1

1

您可以试一试石英调度程序。在这里您可以找到有关该主题的更多信息:

http://quartz-scheduler.org/generated/2.2.1/html/qs-all/#page/Quartz_Scheduler_Documentation_Set/_qs_all.1.009.html#

简而言之,您可以定义一个 xml 文件,说明哪个任务将在哪个条件(或时间范围)下工作。在下面的示例中:

    <!-- Order Recorder Job -->
    <bean id="orderRecorderJob" class="com.cemgunduz.btcenter.job.OrderRecorderJob"/>
    <bean id="orderTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="orderRecorderJob"/>
        <property name="targetMethod" value="execute"/>
    </bean>

    <bean id="orderRecorderJobTrigger"
          class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="orderTask" />
        <property name="cronExpression" value="0 0/5 * * * ?" />
    </bean>

定义了一个名为 orderTask 的任务,它是 orderRecorderJob 中的执行方法。该任务与 cron 表达式相关联,从而定义了触发器。因此,总而言之,上面的示例将每五分钟触发 orderRecorderJob 类的执行方法,如其 cron 表达式 (0 0/5 * * * ?) 中所述。更多关于 cron 表达式语法:

http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger

于 2014-10-15T11:20:54.407 回答