Spring 예약 작업에 대한 사용 지침
1. 분류
구현 기술 측면에서 보면 현재 크게 3가지 기술이 있습니다.
Java 고유의 java.util.Timer 클래스로, 이 클래스를 사용하면 java.util.TimerTask 작업을 예약할 수 있습니다. 이 방법을 사용하면 프로그램이 특정 빈도로 실행될 수 있지만 지정된 시간에는 실행되지 않습니다.
특정 시간이나 특정 빈도로 프로그램을 실행할 수 있는 비교적 강력한 스케줄러인 Quartz를 사용하세요. 구성이 약간 복잡합니다.
Spring 3.0 이상에 포함된 작업은 경량 Quartz라고 볼 수 있으며 Quartz보다 사용하기가 훨씬 간단합니다.
잡 클래스의 상속 방법은 두 가지 범주로 나눌 수 있습니다.
잡 클래스는 상속이 필요한 Quartz와 같은 특정 직업 클래스 기본 클래스에서 상속해야 합니다. org.springframework.scheduling .quartz.QuartzJobBean에서 java.util.Timer는 java.util.TimerTask에서 상속해야 합니다.
작업 클래스는 일반 Java 클래스이므로 기본 클래스에서 상속할 필요가 없습니다.
참고: 저는 개인적으로 두 번째 방법을 사용하는 것을 권장합니다. 모든 클래스가 공통 클래스이고 미리 다르게 취급할 필요가 없기 때문입니다.
작업 스케줄링의 트리거 타이밍 관점에서 보면 주로 작업에 사용되는 트리거는 다음과 같습니다. 주로 다음 두 가지 유형이 있습니다. 트리거는 다음과 같습니다: org.springframework.scheduling.quartz.SimpleTriggerBean
- 은 지정된 시간마다 한 번씩 트리거됩니다. Quartz의 해당 스케줄러는 다음과 같습니다: org.springframework.scheduling.quartz.CronTriggerBean
- 참고: 각 작업에서는 사용할 수 없습니다. 예를 들어, java.util.TimerTask 작업은 첫 번째 트리거만 사용할 수 있습니다. Quartz와 Spring 작업 모두 이 두 가지 트리거 조건을 지원할 수 있습니다.
2. 사용방법
쿼츠, 스프링 작업 등 각 작업 스케줄링 도구의 사용법을 자세히 소개합니다.
Quartz
첫 번째 유형인 작업 클래스는 특정 기본 클래스인 org.springframework.scheduling.quartz.QuartzJobBean에서 상속됩니다.
1단계: 작업 클래스 정의Java 코드
org.quartz.JobExecutionException 가져오기
-
import org.springframework.scheduling.quartz.QuartzJobBean;
-
public class Job1
QuartzJobBean { private int 시간 초과;
비공개 - int 시간 초과) {
this.timeout = 시간 초과
-
}
/** -
* 예약할 특정 작업
-
*/
- @오버라이드
- protected
void executionInternal(JobExecutionContext context)
- t hrows JobExecutionException {
- "예약된 작업이 실행 중입니다...")
}
2단계: 스프링 구성 파일에서 작업 클래스 JobDetailBean
-
Xml 코드 구성
-
bean name="job1" class="org.springframework.scheduling.quartz.JobDetailBean"> 속성 name="jobClass" value=
"com.gy.Job1" /> property name="jobDataAsMap" >
-
map>
-
entry key="timeout" value=
"0" /> map>
property>
설명: org.springframework.scheduling.quartz.JobDetailBean에는 두 가지 속성이 있습니다. jobClass 속성은 Java 코드에서 정의한 작업 클래스이고, jobDataAsMap 속성은 작업 클래스에 주입되어야 하는 속성 값입니다. 3단계: 작업 예약의 트리거 방법(트리거) 구성
Quartz에는 두 가지 작업 트리거, 즉 org.springframework.scheduling.quartz.SimpleTriggerBeanorg.springframework.scheduling이 있습니다. 첫 번째 SimpleTriggerBean은 30분마다 한 번씩 실행되는 것과 같이 특정 빈도의 작업 호출만 지원합니다. 구성 방법은 다음과 같습니다.
-
bean
id=
"simpleTrigger"class=
"org.springframework.scheduling .quartz.SimpleTriggerBean">
- property
- value=
"0" /> property name="repeatInterval" value="2000" />
-
bean> 두 번째 유형의 CronTriggerBean은 매일 12시에 한 번 실행하는 것과 같이 지정된 시간에 한 번 실행을 지원합니다.
구성 방법은 다음과 같습니다. Xml 코드
-
bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> 속성 name="jobDetail" ref=
"job1" /> -
> < ;property name=
"cronExpression" value= - "0 0 12 * * ?"
/>
콩 > cronExpression 표현식의 구문은 부록을 참조하세요.
4단계: 스케줄링 팩토리 구성 Xml 코드
-
name="jobDetail" ref="job1" /> < ;property
name="startDelay""org.springframework.scheduling.quartz.SchedulerFactoryBean" >
- 속성 name="triggers"> ref bean=
- "cronTrigger"
/>
list > -
prop 어티
> bean>
설명: 이 매개변수는 이전에 구성된 트리거의 이름을 지정합니다. 5단계: 애플리케이션을 시작하고 프로젝트를 tomcat이나 다른 컨테이너에 배포하세요.
-
둘째, 직업 클래스는 특정 기본 클래스를 상속받지 않습니다. Spring은 두 가지 클래스 덕분에 이 메서드를 지원할 수 있습니다: org.springframework.scheduling.timer.MethodInvokingTimerTaskFactoryBean
org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean - 이 두 클래스는 각각 Spring에서 지원하는 두 가지 유형에 해당합니다. 작업 스케줄링을 구현하는 방법으로는 위에서 언급한 Java와 함께 제공되는 타이머 작업 메서드와 Quartz 메서드가 있습니다. 여기서는 MethodInvokingJobDetailFactoryBean의 사용법에 대해서만 씁니다. 이 클래스를 사용하면 작업 클래스가 더 이상 어떤 클래스에서도 상속할 필요가 없으며 일반적인 pojo라는 점입니다.
1단계: 작업 클래스 작성
Java 코드
public class Job2 {
publicvoid doJob2 () {
시스템 .out.println(
"QuartzJobBean 메서드 상속 안 함 - 예약 진행 중...");
이것은 일반적인 클래스임을 알 수 있습니다. 방법이 있습니다. 2단계: 직업 클래스 구성
-
Xml 코드
bean id="job2"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"&g
< ;property name="targetObject">
-
bean class="com.gy.Job2" />
property>
- property name="targetMethod" value="doJob2" />
- property name="concurrent" value="false" /> bean> 다음 단계는 방법 1과 동일합니다. 완전성을 위해 해당 단계도 게시됩니다. 3단계: 작업 예약의 트리거 방법(트리거) 구성 Quartz에는 두 가지 작업 트리거, 즉
org.springframework.scheduling.quartz.SimpleTriggerBeanorg.springframework.scheduling이 있습니다. 첫 번째 SimpleTriggerBean은 30분마다 한 번씩 실행되는 것과 같이 특정 빈도의 작업 호출만 지원합니다. 구성 방법은 다음과 같습니다.
Xml 코드
bean
id=
"simpleTrigger"class=
"org.springframework.scheduling.quartz.SimpleTriggerB 이안">
"org.springframework.scheduling.quartz.SchedulerFactoryBean" >
- 속성 name="triggers"> ref bean=
- "cronTrigger"
/>
list > -
prop 어티
> bean>
-
설명: 이 매개변수는 이전에 구성된 트리거의 이름을 지정합니다. 5단계: 애플리케이션을 시작하고 프로젝트를 tomcat이나 다른 컨테이너에 배포하세요.
- 이제 Spring의 Quartz 기본 구성이 소개되었습니다. 물론 사용하기 전에 해당 Spring 패키지와 Quartz 패키지를 가져와야 합니다.
사실 Quartz의 구성이 상당히 복잡해 보인다는 것을 알 수 있습니다. Quartz는 사실 무거운 도구이기 때문에 단순히 몇 가지 간단한 예약된 작업만 실행하려는 경우 더 간단한 도구가 있습니까? ! 아래 Spring 작업에 대한 소개를 참조하세요.
Spring-Task - 이전 섹션에서는 Spring에서 Quartz를 사용하는 방법을 소개했습니다. 이번 글에서는 Spring 3.0 이후 자체 개발한 예약 작업 도구인 Spring Task를 소개합니다. 이는 경량 Quartz에 비유할 수 있으며 사용하기 쉽습니다. 매우 간단합니다. spring 관련 패키지 외에는 추가 패키지가 필요하지 않으며 두 가지 형태의 Annotation과 구성 파일을 지원합니다. 이 두 가지 방법을 아래에서 소개합니다.
첫 번째 방법: 구성 파일 방법첫 번째 단계: 다음과 같이 작업 클래스
즉, 일반 포조를 작성합니다.
Java 코드
import org.springframework.stereotype.Service; @Service public void job1() { }
"http://www.springframework.org/schema/task"
- xsi:schemaLocation=
"http://www.springframework.org/schema/task ">
3단계: 스프링 구성 파일에서 특정 작업 설정 -
작업:예약됨
ref= "taskJob" - method=
" job1"
cron= "0 * * * * ?" - />
task:scheduled-tasks
>
import org.springframework.scheduling.annotation.Scheduled;
@Component("taskJob")
-
public
class TaskJob { - 예약됨(cron =
"0 0 3 * * ?")
public void job1() {
System.out.println("작업 진행 중...") }
-
}
스텝 2: 작업 관련 구성 추가: - Xml 코드
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:aop="http://www.springframework.org/schema/aop"
xmlns:context= "http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
"
default-lazy-init="false">
context:annotation-config />
>
context:comComponent-scan base-package="com.gy.mytask" />
>
task:주석 기반 scheduler="qbScheduler" mode="proxy"/>
task:scheduler id="qbScheduler" pool-size="10"/>
참고: 이론적으로는
물론 구성은 완료되었습니다. 물론 spring 작업에는 아직 많은 매개변수가 있으므로 자세한 내용은 xsd 문서를 참조하세요.
부록:
cronExpression 구성 지침, 특정 사용법 및 매개변수를 확인하세요. Baidu google
필드 허용되는 값 허용되는 특수 문자
초 0-59 , - * /
0 -5 9 , - * /
시간 0-23 , - * /
날짜 1-31 , - * ? / L W C
월 1-12 또는 JAN-DEC , - * /
평일 1-7 또는 SUN-SAT , - * ? / LC #
연도(선택 사항) 비워 두기, 1970-2099 , - * /
- 범위
* 와일드카드
? 해당 필드를 설정하고 싶지 않을 것입니다
다음은 몇 가지 예입니다.
CRON 표현식 의미
"0 0 12 * * ?" 매일 정오 12시에 트리거됨
"0 15 10 ? * *" 매일 아침 10:15에 트리거됨
"0 15 10 * * ?" 매일 아침 10:15에 트리거됨
"0 15 10 * * ? *" 매일 아침 10 : 15개 트리거
"0 15 10 * * ? 2005" 2005년 매일 아침 10시 15분에 트리거됨
"0 * 14 * * ?" 트리거
"0 0/5 14 * * ?" 매일 오후 2시부터 오후 2시 55분까지 5분마다 트리거
"0 0/5 14,18 *** ?" 오후 2시~2시 55분과 오후 6시~6시 55분의 두 시간대에
"0 0-5 14 * * ?" 매일 14:00부터 14:05까지 매분 트리거 1개
"0 10,44 14 ? 3 WED" 3월 매주 수요일 14:10 및 14:44 트리거
"0 15 10 ? * MON-FRI" 매주 월요일, 화요일, 수요일 10:15에 트리거 , 목요일과 금요일
위 내용은 Spring 예약 작업에 대한 사용 지침의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











mdf 파일, mds 파일 사용법 컴퓨터 기술의 지속적인 발전으로 우리는 다양한 방법으로 데이터를 저장하고 공유할 수 있게 되었습니다. 디지털 미디어 분야에서는 특별한 파일 형식을 자주 접하게 됩니다. 이 기사에서는 일반적인 파일 형식인 mdf 및 mds 파일에 대해 설명하고 사용 방법을 소개합니다. 먼저 mdf 파일과 mds 파일의 의미를 이해해야 합니다. mdf는 CD/DVD 이미지 파일의 확장자이고, mds 파일은 mdf 파일의 메타데이터 파일입니다.

CrystalDiskMark는 순차 및 무작위 읽기/쓰기 속도를 빠르게 측정하는 하드 드라이브용 소형 HDD 벤치마크 도구입니다. 다음으로 편집자님에게 CrystalDiskMark 소개와 crystaldiskmark 사용법을 소개하겠습니다~ 1. CrystalDiskMark 소개 CrystalDiskMark는 기계식 하드 드라이브와 솔리드 스테이트 드라이브(SSD)의 읽기 및 쓰기 속도와 성능을 평가하는 데 널리 사용되는 디스크 성능 테스트 도구입니다. ). 무작위 I/O 성능. 무료 Windows 응용 프로그램이며 사용자 친화적인 인터페이스와 다양한 테스트 모드를 제공하여 하드 드라이브 성능의 다양한 측면을 평가하고 하드웨어 검토에 널리 사용됩니다.

foobar2000은 언제든지 음악 리소스를 들을 수 있는 소프트웨어입니다. 모든 종류의 음악을 무손실 음질로 제공합니다. 음악 플레이어의 향상된 버전을 사용하면 더욱 포괄적이고 편안한 음악 경험을 얻을 수 있습니다. 컴퓨터에서 고급 오디오를 재생합니다. 이 장치는 보다 편리하고 효율적인 음악 재생 경험을 제공합니다. 인터페이스 디자인은 단순하고 명확하며 사용하기 쉽습니다. 또한 다양한 스킨과 테마를 지원하고, 자신의 선호도에 따라 설정을 개인화하며, 다양한 오디오 형식의 재생을 지원하는 전용 음악 플레이어를 생성합니다. 또한 볼륨을 조정하는 오디오 게인 기능도 지원합니다. 과도한 볼륨으로 인한 청력 손상을 방지하려면 자신의 청력 상태에 따라 조정하십시오. 다음엔 내가 도와줄게

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

오늘날 클라우드 스토리지는 우리의 일상 생활과 업무에 없어서는 안 될 부분이 되었습니다. 중국 최고의 클라우드 스토리지 서비스 중 하나인 Baidu Netdisk는 강력한 스토리지 기능, 효율적인 전송 속도 및 편리한 운영 경험으로 많은 사용자의 호감을 얻었습니다. 중요한 파일을 백업하고, 정보를 공유하고, 온라인으로 비디오를 시청하고, 음악을 듣고 싶은 경우 Baidu Cloud Disk는 귀하의 요구를 충족할 수 있습니다. 그러나 많은 사용자가 Baidu Netdisk 앱의 구체적인 사용 방법을 이해하지 못할 수 있으므로 이 튜토리얼에서는 Baidu Netdisk 앱 사용 방법을 자세히 소개합니다. Baidu 클라우드 네트워크 디스크 사용 방법: 1. 설치 먼저 Baidu Cloud 소프트웨어를 다운로드하고 설치할 때 사용자 정의 설치 옵션을 선택하십시오.

NetEase Mailbox는 중국 네티즌들이 널리 사용하는 이메일 주소로, 안정적이고 효율적인 서비스로 항상 사용자들의 신뢰를 얻어 왔습니다. NetEase Mailbox Master는 휴대폰 사용자를 위해 특별히 제작된 이메일 소프트웨어로 이메일 보내기 및 받기 프로세스를 크게 단순화하고 이메일 처리를 더욱 편리하게 만듭니다. 따라서 NetEase Mailbox Master를 사용하는 방법과 그 기능이 무엇인지 아래에서 이 사이트의 편집자가 자세한 소개를 제공하여 도움을 드릴 것입니다! 먼저, 모바일 앱스토어에서 NetEase Mailbox Master 앱을 검색하여 다운로드하실 수 있습니다. App Store 또는 Baidu Mobile Assistant에서 "NetEase Mailbox Master"를 검색한 후 안내에 따라 설치하세요. 다운로드 및 설치가 완료되면 NetEase 이메일 계정을 열고 로그인합니다. 로그인 인터페이스는 아래와 같습니다.

스피커의 재생 버튼을 길게 누른 후 소프트웨어에서 Wi-Fi에 연결하면 사용 가능합니다. 튜토리얼 적용 모델: Xiaomi 12 시스템: EMUI11.0 버전: Xiaoai Classmate 2.4.21 분석 1 먼저 스피커의 재생 버튼을 찾아 길게 눌러 네트워크 배포 모드로 들어갑니다. 2 휴대폰의 Xiaoai 스피커 소프트웨어에서 Xiaomi 계정에 로그인하고 클릭하여 새 Xiaoai 스피커를 추가하세요. 3. Wi-Fi의 이름과 비밀번호를 입력한 후 Xiao Ai에게 전화를 걸어 사용할 수 있습니다. 보충: Xiaoai 스피커에는 어떤 기능이 있습니까? 1 Xiaoai 스피커에는 시스템 기능, 소셜 기능, 엔터테인먼트 기능, 지식 기능, 생활 기능, 스마트 홈 및 교육 계획이 있습니다. 요약/주의사항: 간편한 연결 및 사용을 위해서는 Xiao Ai 앱을 휴대폰에 미리 설치해야 합니다.

Apple은 화요일에 iOS 17.4 업데이트를 출시하여 iPhone에 수많은 새로운 기능과 수정 사항을 추가했습니다. 업데이트에는 새로운 이모티콘이 포함되어 있으며 EU 사용자는 다른 앱 스토어에서도 해당 이모티콘을 다운로드할 수 있습니다. 또한, 업데이트는 iPhone 보안 제어를 강화하고 사용자에게 더 많은 선택권과 보호 기능을 제공하기 위해 더 많은 "도난당한 장치 보호" 설정 옵션을 도입합니다. "iOS17.3에서는 최초로 '도난 기기 보호' 기능을 도입해 사용자의 민감한 정보에 대한 보안을 강화했습니다. 사용자가 집이나 기타 친숙한 장소를 떠나 있을 때 이 기능을 사용하려면 먼저 생체 정보를 입력해야 합니다. Apple ID 암호 변경, 도난 기기 보호 끄기 등 특정 데이터에 접근하고 변경하려면 정보를 다시 입력해야 합니다.
