ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Fastcat]작업 관리에 대해 알아보자.
    개발하면서/코드보면서 2011.07.02 10:52

    검색 하는 부분을 보기에 앞서, 작업들을 어떻게 관리하는지 보자.


    init에서는 HomePath 설정하고, 객체 가져온다.

     

      이번 Post에서는 dbHandler, JobController, JobScheduler가 어떤식으로 구동하는지 알아보자

     

    dbHandler는 간단하다. Connection가져오는 기능, 그리고 table 생성하는 기능

     

     

    JobController는?


    Job을 담을 저장공간, JobQueue가 있는데 JobControllerWorker가 계속 감시한다.
    Job이 들어오면 즉시 jobExecutor에다가 주고, jobExecutor가 Job을 실행 한다..

    그리고 JobScheduler는 DB의 IndexingSchedule 테이블에서 활성화된 예약 작업들(isActive==1)을 가져오고,
    각 작업들을 AtomicLong을 이용하여, 고유한 JobID를 부여한후, JobQueue에 offer한다.


    간단히 말하면, JobController는 JobQueue을 계속 감시하면서 (take) Job이 발생하면 실행.
    JobScheduler는 예약된 작업을 JobQueue에 집어넣음(offer)


    내가 몰랐던 자바의 세계 :  AtomicLong, Java reflect Constructor, BlockingQueue, ThreadPoolExecutor
    공부하자~!! 

    TAG

    댓글 0

Designed by Tistory.