Quartz --- 응용 프로그램 학습 (1)
지정 한 디 렉 터 리 의 XML 파일 을 검색 합 니 다. 지정 한 디 렉 터 리 에서 하나 이상 의 XML 파일 을 찾 으 면 파일 의 정 보 를 출력 합 니 다.더 확장 할 수 있 습 니 다. 작업 은 특정 파일 을 감지 하고 원 격 기기 에 FTP 를 보 내 거나 이메일 로 보 낼 수 있 습 니 다.데이터베이스 에 저장 할 수도 있 습 니 다.
\ # Quartz Job 클래스 만 들 기
하나하나 Quartz Job 하나 가 이 루어 져 야 돼. org.quartz.Job 인터페이스의 구체 적 인 유형.이 인 터 페 이 스 는 너 를 원한 다. Job 실행 방법 execute() public void execute(JobExecutionContext context) throws JobExecutionException;
... 해 야 한다 Quartz 스케줄 러 가 시간 이 되면 하 나 를 자극 해 야 합 니 다. Job Job 이 생 성 됩 니 다. 실례 execute() 방법있다 execute() 방법 에서 당신 의 업무 논 리 를 집행 하 세 요.
디 렉 터 리 에 있 는 글 을 검색 하고 파일 의 자세 한 정 보 를 표시 합 니 다.
/**
* <p>
* A simple Quartz job that, once configured, will scan a
* directory and print out details about the files found
* in the directory.
* </p>
* Subdirectories will filtered out by the use of a
* <code>{@link FileExtensionFileFilter}</code>.
*
* @author Chuck Cavaness
* @see java.io.FileFilter
*/
public class ScanDirectoryJob implements Job {
static Log logger = LogFactory.getLog(ScanDirectoryJob.class);
public void execute(JobExecutionContext context)
throws JobExecutionException {
// Every job has its own job detail
JobDetail jobDetail = context.getJobDetail();
// The name is defined in the job definition
String jobName = jobDetail.getName();
// Log the time the job started
logger.info(jobName + " fired at " + new Date());
// The directory to scan is stored in the job map
JobDataMap dataMap = jobDetail.getJobDataMap();
String dirName = dataMap.getString("SCAN_DIR");
// Validate the required input
if (dirName == null) {
throw new JobExecutionException( "Directory not configured" );
}
// Make sure the directory exists
File dir = new File(dirName);
if (!dir.exists()) {
throw new JobExecutionException( "Invalid Dir "+ dirName);
}
// Use FileFilter to get only XML files
FileFilter filter = new FileExtensionFileFilter(".xml");
File[] files = dir.listFiles(filter);
if (files == null || files.length <= 0) {
logger.info("No XML files found in " + dir);
// Return since there were no files
return;
}
// The number of XML files
int size = files.length;
// Iterate through the files found
for (int i = 0; i < size; i++) {
File file = files[i];
// Log something interesting about each file.
File aFile = file.getAbsoluteFile();
long fileSize = file.length();
String msg = aFile + " - Size: " + fileSize;
logger.info(msg);
}
}
}
... 해 야 한다 Quartz 호출 execute() 방법 org.quartz.JobExecutionContext 상하 문 변수 Quartz 실행 중인 환경 과 현재 실행 중인 Job 。통과 하 다. Jobexecution Context, 스케줄 러 의 정보, 작업 과 작업 에 있 는 트리거 의 정보, 그리고 더 많은 정보 에 접근 할 수 있 습 니 다.JobExecutionContext 접근 org.quartz.JobDetail 클래스, JobDetail 보유 하 다 Job 의 상세 한 정보.JobDetail 또 하나의 지향 점 을 가지 고 있다. org.quartz.JobDataMap 인용JobDataMap 지정 Job 설정 한 사용자 정의 속성 입 니 다.
/**
* A FileFilter that only passes Files of the specified extension.
* <p>
* Directories do not pass the filter.
*
* @author Chuck Cavaness
*/
public class FileExtensionFileFilter implements FileFilter {
private String extension;
public FileExtensionFileFilter(String extension) {
this .extension = extension;
}
/*
* Pass the File if it has the extension.
*/
public boolean accept(File file) {
// Lowercase the filename for easier comparison
String lCaseFilename = file.getName().toLowerCase();
return (file.isFile() && (lCaseFilename.indexOf(extension) > 0 )) ? true : false ;
}
}
FileExtensionFileFilter 이름 에 문자열 이 없 는 것 을 차단 하 는 데 사 용 됩 니 다. “ .xml ” 라 는 문건 을 남 겼 다.하위 디 렉 터 리 도 차단 합 니 다. - 이 하위 디 렉 터 리 들 은 원래... listFiles() 방법 은 정상적으로 돌아간다.필 터 는 당신 에 게 선택 적 으로 편리 한 방식 을 제공 합 니 다. Quartz 작업 은 입력 할 수 있 는 파일 을 제공 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
XML이란 무엇입니까?이것은 저장, 검색 및 공유할 수 있는 형식으로 데이터를 저장하는 강력한 방법입니다. 가장 중요한 것은 XML의 기본 형식이 표준화되어 있기 때문에 시스템이나 플랫폼 간에 로컬 또는 인터넷을 통해 XML을 공유하거나...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.