>  기사  >  Java  >  Spring은 squertz를 사용하여 예약된 작업을 구현합니다.

Spring은 squertz를 사용하여 예약된 작업을 구현합니다.

高洛峰
高洛峰원래의
2017-01-23 16:13:301725검색

머리말

예정된 작업에 대해 말하면 개발자들은 확실히 익숙합니다. 어떤 것들은 우리 스스로 하기보다 항상 컴퓨터가 필요합니다. 그러나 많은 사람들은 항상 타이머에 익숙하지 않습니다. 오늘 편집자는 내 친구들과 함께 타이머의 미스터리를 밝히고 Spring이 squertz를 사용하여 예약된 작업을 구현하는 방법을 설명할 것입니다.

1. 필수 Jar

quartz-1.8.5.jar
commons-logging.jar
spring-core-3.0.5.RELEASE.jar
spring-beans-3.0.5.RELEASE.jar
spring-context-3.0.5.RELEASE.jar
spring-context-support-3.0.5.RELEASE.jar
spring-asm-3.0.5.RELEASE.jar
spring-expression-3.0.5.RELEASE.jar
spring.transaction-3.0.5.RELEASE.jar
spring-web-3.0.5.RELEASE.jar

2. 구성 파일

예약된 작업을 실행하려면 여기에서 구성하세요. 어떤 메소드가 실행되는지, 예를 들어 다음은 2016.11.10 23:00:00에 실행된 com.seewoedu.train.quartz.GenerateRewardListTask의 생성 메소드입니다. 여기서 cron은 실행 시간

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 <!-- 启动触发器的配置开始 -->
 <bean name="startQuertz" lazy-init="false" autowire="no"
  class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
 <property name="triggers">
  <list>
  <ref bean="myJobTrigger" />
  </list>
 </property>
 </bean>
 <!-- 启动触发器的配置结束 -->
 
 <!-- quartz-2.x的配置 -->
 <bean id="myJobTrigger"
  class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
 <property name="jobDetail">
  <ref bean="myJobDetail" />
 </property>
 <property name="cronExpression">
  <!--<value>10 0/1 * * * ?</value>--> <!-- Cron表达式“10 */1 * * * ?”意为:从10秒开始,每1分钟执行一次。 -->
  <value>0 0 9 10 12 ? 2016</value> <!-- Cron表达式“0 0 23 10 11 ? 2016”意为:只在2016.11.10 23:00:00 执行。 -->
 </property>
 </bean>
 <!-- 调度的配置结束 -->
 
 <!-- job的配置开始 -->
 <bean id="myJobDetail"
  class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
 <property name="targetObject">
  <ref bean="myJob" />
 </property>
 <property name="targetMethod">
  <value>generate</value>
 </property>
 </bean>
 <!-- job的配置结束 -->
 
 <!-- 工作的bean -->
 <bean id="myJob" class="com.seewoedu.train.quartz.GenerateRewardListTask" />
</beans>
3가지.실행방법

rree

4.주의사항

1. 실행시기를 연도로 지정하면 문제가 발생한다. 즉, 이 시간 이후에 프로젝트를 시작하면 항상 메모리 누수 오류가 보고됩니다. 이는 아마도 예약된 작업이 실행되지 않아 프로젝트가 시작되지 않음을 의미할 수 있습니다.

2. 예약된 작업은 서버 시간을 실시간으로 얻는 것이 아니라 프로젝트를 배포한 시점부터 예약된 작업을 실행하려는 시점까지의 시간 간격을 계산하여 구현되므로, 서버 시간을 수정하면 예약된 작업이 적용됩니다.

요약

이 글의 내용이 모두의 공부나 업무에 조금이나마 도움이 되었으면 좋겠습니다. 소통하라는 메시지.

squertz를 사용하여 예약된 작업을 구현하는 더 많은 봄 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.