Class GlueServerHandler

java.lang.Object
org.apache.mina.core.service.IoHandlerAdapter
com.poscoict.glueframework.scheduling.server.GlueServerHandler
All Implemented Interfaces:
org.apache.mina.core.service.IoHandler

public class GlueServerHandler extends org.apache.mina.core.service.IoHandlerAdapter
GlueSchedulerHttpServer가 받은 Request 정보를 기반으로 Job을 처리하는 핸들러 클래스.
  • Field Details

    • DEFAULT_IDLE_TIME

      public static final int DEFAULT_IDLE_TIME
      디폴트 세션 Idle 시간 (단위, 초)
      See Also:
    • PARAM_HEADER

      protected static final String PARAM_HEADER
      Job Parameter Header
      See Also:
  • Constructor Details

    • GlueServerHandler

      public GlueServerHandler()
    • GlueServerHandler

      public GlueServerHandler(GlueJobEventReceiver jobEventReceiver)
  • Method Details

    • sessionOpened

      public void sessionOpened(org.apache.mina.core.session.IoSession session)
      세션 오픈 시 callback 메소드. 세션 IDLE 시간을 설정한다. (디폴트 1분)
      Specified by:
      sessionOpened in interface org.apache.mina.core.service.IoHandler
      Overrides:
      sessionOpened in class org.apache.mina.core.service.IoHandlerAdapter
      Parameters:
      session - IoSession
    • createJobDefinition

      protected GlueJobDefinition createJobDefinition(GlueHttpRequestMessage message)
      GlueHttpRequestMessage로부터 Job Definition을 생성한다. - JobName, RequestId, ClientIp - Job Parameters 정보 설정
      Parameters:
      message - GlueHttpRequestMessage
      Returns:
      생성된 JobDefinition
    • messageReceived

      public void messageReceived(org.apache.mina.core.session.IoSession session, Object message)
      GlueGlueSchedulerHttpServer가 메시지(HttpRequest)를 받을 때 호출되는 callback 메소드. 메시지로부터 JobDefinition을 생성한 후 JobEventReicever를 이용하여 해당 Scheduled Job을 기동한다. Job 실행 등록이 정상적으로 이루어지면 Response에 "success"가 설정되고 StatusCode는 GlueHttpResponseMessage.STATUS_JOB_SUCCESS 값(700)이 설정된다. 반대로 등록에 실패하면 "failure"가 설정되고 StatusCode는 GlueHttpResponseMessage.STATUS_JOB_ERROR 값(800)이 설정된다. TODO: job state 확인 후 해당 리턴 코드 응답하는 로직 추가 - catch GlueAlreadyCompletedJobException, GlueAlreadyRunningJobException
      Specified by:
      messageReceived in interface org.apache.mina.core.service.IoHandler
      Overrides:
      messageReceived in class org.apache.mina.core.service.IoHandlerAdapter
      Parameters:
      session - IoSession
      message - GlueHttpRequestMessage
    • sessionIdle

      public void sessionIdle(org.apache.mina.core.session.IoSession session, org.apache.mina.core.session.IdleStatus status)
      Specified by:
      sessionIdle in interface org.apache.mina.core.service.IoHandler
      Overrides:
      sessionIdle in class org.apache.mina.core.service.IoHandlerAdapter
    • exceptionCaught

      public void exceptionCaught(org.apache.mina.core.session.IoSession session, Throwable cause)
      Specified by:
      exceptionCaught in interface org.apache.mina.core.service.IoHandler
      Overrides:
      exceptionCaught in class org.apache.mina.core.service.IoHandlerAdapter