spring은 squertz를 이용하여 정시 임무를 실현한다
정시 임무를 말하자면, 개발한 친구들은 틀림없이 낯설지 않을 것이다.어떤 일들은 항상 컴퓨터가 완성해야 한다. 바보같이 우리 자신에게 의지하는 것이 아니라.그러나 많은 사람들이 타이머에 대해 늘 낯설게 느낀다. 오늘 편집자는 친구들을 데리고 그의 신비한 베일을 벗기고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, 실행
com.seewoedu.train.quartz.GenerateRewardListTask
방법, 여기에서cron을 사용하여 실행 시간을 지정했습니다. 관련 문법은 볼 수 있습니다https://www.jb51.net/article/103861.htm
<?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. 실행되는 방법
public class GenerateRewardListTask {
@Autowired
private GiftReceiveRecordService giftReceiveRecordService;
org.slf4j.Logger logger = LoggerFactory.getLogger(GenerateRewardListTask.class);
public void generate() throws Exception {
giftReceiveRecordService.generateRewardMember(); //
}
}
4. 주의해야 할 문제1. 실행 시간이 연도로 지정되었을 때 문제가 발생할 수 있습니다. 바로 이 시간이 지난 후에 프로젝트를 시작할 때 메모리 leak의 오류를 계속 보고합니다. 아마도 당신의 정시 임무는 영원히 실행되지 않아 프로젝트가 계속 시작되지 않을 것입니다.
2. 정시 임무는 당신의 배치 프로젝트를 통해 정시 임무를 수행할 시간 간격을 계산하는 것이지 실시간으로 당신의 서버 시간을 얻는 방법이 아니기 때문에 서버 시간을 수정하여 정시 임무가 적용되는지 테스트하는 것은 불가능하다.
총결산
이상은 바로 이 글의 전체 내용입니다. 본고의 내용이 여러분의 학습이나 업무에 어느 정도 도움이 되고 의문이 있으면 댓글로 교류하시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.