머리말
예정된 작업에 대해 말하면 개발자들은 확실히 익숙합니다. 어떤 것들은 우리 스스로 하기보다 항상 컴퓨터가 필요합니다. 그러나 많은 사람들은 항상 타이머에 익숙하지 않습니다. 오늘 편집자는 내 친구들과 함께 타이머의 미스터리를 밝히고 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>
rree
4.주의사항 1. 실행시기를 연도로 지정하면 문제가 발생한다. 즉, 이 시간 이후에 프로젝트를 시작하면 항상 메모리 누수 오류가 보고됩니다. 이는 아마도 예약된 작업이 실행되지 않아 프로젝트가 시작되지 않음을 의미할 수 있습니다. 2. 예약된 작업은 서버 시간을 실시간으로 얻는 것이 아니라 프로젝트를 배포한 시점부터 예약된 작업을 실행하려는 시점까지의 시간 간격을 계산하여 구현되므로, 서버 시간을 수정하면 예약된 작업이 적용됩니다. 요약이 글의 내용이 모두의 공부나 업무에 조금이나마 도움이 되었으면 좋겠습니다. 소통하라는 메시지. squertz를 사용하여 예약된 작업을 구현하는 더 많은 봄 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!