Java java지도 시간 Spring+quartz 구현 예

Spring+quartz 구현 예

Jun 21, 2017 am 09:28 AM
spring 기반으로 타이밍

친구의 프로젝트에 문제가 있습니다. 그의 팀은 Spring 아키텍처를 기반으로 하며 예약된 실행이 필요한 비교적 간단한 작업을 수행합니다. 자신의 요구 사항을 이해한 후 그는 상대적으로 간단한 Spring+quartz 구현을 제안했습니다.

이 문서에서는 완료된 Spring 프로젝트에서 가장 간단한 예약 작업을 완료하는 방법만 설명합니다.

첫 번째 단계는 매우 흥미롭고 흥미로운 Spring 아키텍처를 아는 것입니다. 기능 모듈을 자유롭게 연결하고 분리하는 효과를 얻을 수 있습니다. 엔지니어링 프로젝트는 MAVEN 패키지 종속성 관리를 기반으로 하므로 이번에 필요한 종속성 패키지 참조 목록을 나열하세요.

 1 <!-- 定时器依赖 开始 --> 2 <dependency> 3 <groupId>org.springframework</groupId> 4 <artifactId>spring-context-support</artifactId> 5 <version>4.0.2.RELEASE</version> 6 </dependency> 7  8   9 10 <dependency>11 <groupId>org.quartz-scheduler</groupId>12 <artifactId>quartz</artifactId>13 <version>2.2.1</version>14 </dependency>15 <!-- 定时器依赖 结束 -->
로그인 후 복사

물론 이는 해당 Spring 버전과 일치해야 합니다. 여기서 우리 프로젝트는 4.0.2입니다. 이전 패키지인 spring-context-support는 주로 Spring과 quartz 사이의 통신 및 관리를 위한 컴포넌트로 사용되었습니다. 주석 처리하면 이와 같은 오류가 보고됩니다

MAVEN이 필요한 패키지를 구성한 후에는 (다른 패키지는 당분간 여기에서 확장하지 않을 것입니다. 이 기사에서는 전체 Spring 프로젝트의 구성에 대해서만 설명합니다.) 예약된 작업의 기능 모듈을 이 프로젝트에 추가하기 시작할 수 있습니다.

두 번째 단계는 웹 프로젝트의 원본부터 시작하여 web.xml을 변경하는 것입니다. 원래 프로젝트의 Spring 구성 파일이 Spring-mvc.xml이었으므로 예약된 작업의 구성 파일을 spring-time.xml로 변경했습니다. 이러한 방식으로 시작 시 동일한 스캔 구성을 읽을 수 있습니다. 구체적인 코드는 다음과 같습니다.

1 <context-param>2         <param-name>contextConfigLocation</param-name>3         <param-value>classpath:spring-*.xml</param-value>4     </context-param>
로그인 후 복사

그럼 내 프로젝트 구조를 보여드리겠습니다. ’ 를

불렀습니다. 이 단계를 달성한 후에는 계속해서 진행할 수 있습니다.

세 번째 단계는 spring-timer.xml 예약 작업의 핵심 구성을 완료하는 것입니다. 이 파일 구성에서는 주로 다음 세 가지를 완료합니다.

1. 시작 설정 구성, 지연 로딩 관련(간단히 말하면, 예를 들어 특정 변수를 null로 초기화하는 것도 일종의 지연 로딩입니다. 서비스 시작 이후에는 실제로 호출될 때만 인스턴스화되며 그렇지 않으면 메모리에 존재하지 않습니다. 논리적으로 공간을 절약할 수 있지만 오랜 지연 후에 문제가 발견될 수도 있습니다. 2. quartz-2.x의 구성에는 예약된 작업이 트리거된 후 호출되는 작업 이름과 옥수수 표현(즉, 프로그램이 반복 실행되는 이유는 나중에 추가될 예정입니다.

3. 작업 내용과 작업에 해당하는 특정 클래스를 구성합니다.

이제 논리 프로세스에 대한 설명이 완료되었으므로 다음 코드가 있습니다.

 1 <?xml version="1.0" encoding="UTF-8"?>   2 <beans xmlns="http://www.springframework.org/schema/beans"   3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  4     xmlns:p="http://www.springframework.org/schema/p"   5     xsi:schemaLocation="http://www.springframework.org/schema/beans  
 6      ">   7    8         <!-- 启动触发器的配置开始 -->   9     <bean name="startQuertz" lazy-init="false" autowire="no"  10         class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  11         <property name="triggers">  12             <list>  13                 <ref bean="myJobTrigger" />  14             </list>  15         </property>  16     </bean>  17     <!-- 启动触发器的配置结束 -->  18   19     <!-- 调度的配置开始 -->  20     <!--  21         quartz-1.8以前的配置   
22     <bean id="myJobTrigger"  
23         class="org.springframework.scheduling.quartz.CronTriggerBean">  
24         <property name="jobDetail">  
25             <ref bean="myJobDetail" />  
26         </property>  
27         <property name="cronExpression">  
28             <value>0/1 * * * * ?</value>  
29         </property>  
30     </bean>  
31     -->  32     <!-- quartz-2.x的配置 -->  33     <bean id="myJobTrigger"  34         class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">  35         <property name="jobDetail">  36             <ref bean="myJobDetail" />  37         </property>  38         <property name="cronExpression">  39         40         <value>0/10 * *  * * ?</value>41           <!--   <value>1 52 * * * ?</value>  --> 42         </property>  43     </bean>  44     <!-- 调度的配置结束 -->  45   46     <!-- job的配置开始 -->  47     <bean id="myJobDetail"  48         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  49         <property name="targetObject">  50             <ref bean="myJob" />  51         </property>  52         <property name="targetMethod">  53             <value>work</value>  54         </property>  55     </bean>  56     <!-- job的配置结束 -->  57   58     <!-- 工作的bean -->  59     <bean id="myJob" class="com.tec.kevin.quartz.jobTest" />  60   61 </beans>
로그인 후 복사

여기에서 구성 파일 구성을 완료한 후 다음 단계를 시작할 수 있으며 특정 비즈니스 논리가 구현됩니다. 네 번째 단계는 특정 비즈니스 로직을 구현하는 것입니다.

여기서 주목해야 할 점은 아래 그림의 2가지 사항입니다

위 그림은 특정 업무 구현 클래스이며, 내부 이름은 그림 속 예정된 작업 구성과 동일해야 합니다. 아래에.

위 작업을 완료한 후 프로젝트를 시작하고 실제 효과를 확인할 수 있습니다.

여기에서는 이전 구성에서 10초마다 실행되는 0/10 * * * * ?에 따라 예약된 작업이 실행되는 것을 볼 수 있습니다.

                                                                                                                                                                                                                      동시에 두 번 실행되었습니다. 나중에 발견한 이유는 web.xml을 구성할 때 예약된 작업이 반복적으로 구성되어 여러 번 실행되는 결과를 낳았기 때문입니다. 이런 상황이 발생하면 내 솔루션을 참조할 수 있습니다.

다음에는 두 개의 기사가 있을 것입니다. 하나는 예약된 작업을 작성하는 더 간단한 구현 방법이고 다른 하나는 cron 표현식을 설명합니다.

위 내용은 Spring+quartz 구현 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Goat Simulator 3에서 공포 복도 임무를 완료하는 방법 Goat Simulator 3에서 공포 복도 임무를 완료하는 방법 Feb 25, 2024 pm 03:40 PM

Terror Corridor는 Goat Simulator 3의 임무입니다. 이 임무를 어떻게 완료할 수 있습니까? 자세한 정리 방법과 해당 프로세스를 숙지하고 이 임무의 해당 과제를 완료할 수 있으면 Goat Simulator 3가 제공됩니다. 관련 정보를 배울 수 있는 안내입니다. Goat Simulator 3 Terror Corridor 가이드 1. 먼저 플레이어는 지도의 왼쪽 상단에 있는 Silent Hill로 이동해야 합니다. 2. 지붕에 RESTSTOP이라고 적힌 집이 보입니다. 플레이어는 이 집에 들어가려면 염소를 조작해야 합니다. 3. 방에 들어간 후 먼저 직진하다가 여기 끝에 문이 있고 여기서 바로 들어갑니다. 4. 들어간 후에도 먼저 앞으로 걸어간 다음 여기 문에 도달하면 문이 닫혀 있어야합니다.

Goat Simulator 3에서 Imperial Tomb 미션을 통과하는 방법 Goat Simulator 3에서 Imperial Tomb 미션을 통과하는 방법 Mar 11, 2024 pm 01:10 PM

Goat Simulator 3는 고전적인 시뮬레이션 게임플레이를 갖춘 게임으로, 플레이어는 캐주얼 액션 시뮬레이션의 재미를 완전히 경험할 수 있습니다. 이 게임에는 또한 많은 흥미로운 특수 작업이 있으며, 그 중 Goat Simulator 3 Imperial Tomb 작업에서는 플레이어가 종탑을 찾아야 합니다. 일부 플레이어는 세 개의 시계를 동시에 작동하는 방법을 잘 모릅니다. 다음은 Goat Simulator 3의 Tomb of the Tomb 미션에 대한 가이드입니다! 순서대로. 세부 단계 확장 1. 먼저 지도를 열고 Wuqiu Cemetery로 이동해야 합니다. 2. 그런 다음 종탑으로 올라가면 내부에 3개의 종이 있을 것입니다. 3. 그리고 큰 것부터 작은 것 순으로 222312312를 따라가면서 화난 두드리기에 익숙해지세요. 4. 노크를 완료한 후 미션을 완료하고 문을 열어 광선검을 획득할 수 있습니다.

Goat Simulator 3에서 스티브 구출 임무를 수행하는 방법 Goat Simulator 3에서 스티브 구출 임무를 수행하는 방법 Feb 25, 2024 pm 03:34 PM

Steve 구출은 Goat Simulator 3의 독특한 작업입니다. 이 작업을 완료하려면 정확히 무엇을 해야 할까요? 이 작업은 상대적으로 간단하지만 의미를 오해하지 않도록 주의해야 합니다. 여기서는 Goat Simulator에서 Steve를 구출하도록 안내하겠습니다. 3 작업 전략은 관련 작업을 더 잘 완료하는 데 도움이 될 수 있습니다. 염소 시뮬레이터 3 스티브 구출 미션 전략 1. 먼저 지도 오른쪽 하단에 있는 온천으로 가세요. 2. 온천에 도착하면 스티브 구출 임무를 시작할 수 있습니다. 3. 온천에 남자가 있다는 점에 유의하세요. 그의 이름은 스티브이지만 그는 이 임무의 대상이 아닙니다. 4. 이 온천에서 스티브라는 물고기를 찾아 해변으로 가져와 이 작업을 완료하세요.

Spring Boot가 OpenAI를 만났을 때 새로운 프로그래밍 패러다임 Spring Boot가 OpenAI를 만났을 때 새로운 프로그래밍 패러다임 Feb 01, 2024 pm 09:18 PM

2023년에는 AI 기술이 화두가 되면서 다양한 산업, 특히 프로그래밍 분야에 큰 영향을 미치고 있다. 사람들은 AI 기술의 중요성을 점점 더 인식하고 있으며 Spring 커뮤니티도 예외는 아닙니다. GenAI(일반 인공 지능) 기술이 지속적으로 발전함에 따라 AI 기능을 갖춘 애플리케이션 생성을 단순화하는 것이 중요하고 시급해졌습니다. 이러한 배경에서 AI 기능 애플리케이션 개발 프로세스를 단순화하고 간단하고 직관적이며 불필요한 복잡성을 피하는 것을 목표로 하는 "SpringAI"가 등장했습니다. 'SpringAI'를 통해 개발자는 AI 기능이 포함된 애플리케이션을 더욱 쉽게 구축할 수 있어 사용 및 운영이 더욱 쉬워진다.

Douyin 팬 그룹 작업은 어디에서 찾을 수 있나요? Douyin 팬클럽이 레벨을 잃을까요? Douyin 팬 그룹 작업은 어디에서 찾을 수 있나요? Douyin 팬클럽이 레벨을 잃을까요? Mar 07, 2024 pm 05:25 PM

현재 가장 인기 있는 소셜 미디어 플랫폼 중 하나인 TikTok은 많은 사용자의 참여를 유도하고 있습니다. Douyin에는 사용자가 특정 보상과 혜택을 얻기 위해 완료할 수 있는 팬 그룹 작업이 많이 있습니다. 그렇다면 Douyin 팬클럽 작업은 어디서 찾을 수 있나요? 1. 두인 팬클럽 과제는 어디서 볼 수 있나요? Douyin 팬 그룹 작업을 찾으려면 Douyin의 개인 홈페이지를 방문해야 합니다. 홈페이지에 보시면 '팬클럽'이라는 옵션이 보이실 겁니다. 이 옵션을 클릭하면 자신이 가입한 팬 그룹 및 관련 작업을 찾아볼 수 있습니다. 팬클럽 작업란에서는 좋아요, 댓글, 공유, 전달 등 다양한 종류의 작업을 확인할 수 있습니다. 각 작업에는 해당 보상과 요구 사항이 있습니다. 일반적으로 작업을 완료하면 일정량의 금화나 경험치를 받게 됩니다.

Spring Boot 및 Spring AI를 사용하여 생성 인공 지능 애플리케이션 구축 Spring Boot 및 Spring AI를 사용하여 생성 인공 지능 애플리케이션 구축 Apr 28, 2024 am 11:46 AM

업계 리더인 Spring+AI는 강력하고 유연한 API와 고급 기능을 통해 다양한 산업에 선도적인 솔루션을 제공합니다. 이 주제에서는 다양한 분야의 Spring+AI 적용 사례를 살펴보겠습니다. 각 사례에서는 Spring+AI가 어떻게 특정 요구 사항을 충족하고 목표를 달성하며 이러한 LESSONSLEARNED를 더 넓은 범위의 애플리케이션으로 확장하는지 보여줍니다. 이 주제가 여러분이 Spring+AI의 무한한 가능성을 더 깊이 이해하고 활용하는 데 영감을 줄 수 있기를 바랍니다. Spring 프레임워크는 소프트웨어 개발 분야에서 20년 이상의 역사를 가지고 있으며, Spring Boot 1.0 버전이 출시된 지 10년이 되었습니다. 이제 봄이 왔다는 것에 대해 누구도 이의를 제기할 수 없습니다.

Spring 프로그래밍 방식 트랜잭션의 구현 방법은 무엇입니까? Spring 프로그래밍 방식 트랜잭션의 구현 방법은 무엇입니까? Jan 08, 2024 am 10:23 AM

Spring 프로그래밍 방식 트랜잭션을 구현하는 방법: 1. TransactionCallback 및 TransactionCallbackWithoutResult를 사용합니다. 3. Transactional 주석을 사용합니다. 4. @Transactional과 함께 TransactionTemplate을 사용합니다.

Win11 예약 종료를 설정하는 방법을 가르쳐주세요. Win11 예약 종료를 설정하는 방법을 가르쳐주세요. Jan 06, 2024 pm 07:14 PM

때로는 특정 프로그램을 계속 다운로드하거나 허용하고 작업이 완료된 후 컴퓨터를 종료해야 하는 경우가 있습니다. 그렇다면 실제로 win11에서 예약된 종료를 설정하는 방법은 무엇입니까? 종료 명령을 사용하십시오. win11에서 예약된 종료를 설정하는 방법: 1. 먼저 왼쪽 하단에 있는 시작 메뉴를 마우스 오른쪽 버튼으로 클릭하고 "실행"을 엽니다. 2. 그런 다음 "shutdown-s-t7200"을 입력하고 Enter를 눌러 실행합니다. (여기서 7200은 초 단위의 예정된 종료 시간이고, 7200은 2시간 후 종료입니다.) 3. 이런 식으로 예정된 종료 설정을 완료할 수 있습니다. 4. 예약된 종료를 취소하려면 "shutdown-a"를 입력하고 Enter를 누르십시오. 5. 확인 후 예약된 종료를 취소할 수 있습니다.

See all articles