Quartz --- 응용 프로그램 학습 (1)

5489 단어 xmlquartz
Quartz 응용 프로그램 을 만 드 는 전 과정 을 보 여 줍 니 다. 구체 적 으로 실현 합 니 다.
지정 한 디 렉 터 리 의 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  작업 은 입력 할 수 있 는 파일 을 제공 합 니 다.

좋은 웹페이지 즐겨찾기