com.poscoict.glueframework.scheduling.server
Class GlueServerHandler

java.lang.Object
  extended by org.apache.mina.common.IoHandlerAdapter
      extended by com.poscoict.glueframework.scheduling.server.GlueServerHandler
All Implemented Interfaces:
org.apache.mina.common.IoHandler

public class GlueServerHandler
extends org.apache.mina.common.IoHandlerAdapter

GlueSchedulerHttpServer가 받은 Request 정보를 기반으로 Job을 처리하는 핸들러 클래스.


Field Summary
static int DEFAULT_IDLE_TIME
          디폴트 세션 Idle 시간 (단위, 초)
protected static String PARAM_HEADER
          Job Parameter Header
 
Constructor Summary
GlueServerHandler()
           
GlueServerHandler(GlueJobEventReceiver jobEventReceiver)
           
 
Method Summary
protected  GlueJobDefinition createJobDefinition(GlueHttpRequestMessage message)
          GlueHttpRequestMessage로부터 Job Definition을 생성한다. - JobName, RequestId, ClientIp - Job Parameters 정보 설정
 void exceptionCaught(org.apache.mina.common.IoSession session, Throwable cause)
           
 void messageReceived(org.apache.mina.common.IoSession session, Object message)
          GlueGlueSchedulerHttpServer가 메시지(HttpRequest)를 받을 때 호출되는 callback 메소드.
 void sessionIdle(org.apache.mina.common.IoSession session, org.apache.mina.common.IdleStatus status)
           
 void sessionOpened(org.apache.mina.common.IoSession session)
          세션 오픈 시 callback 메소드.
 
Methods inherited from class org.apache.mina.common.IoHandlerAdapter
messageSent, sessionClosed, sessionCreated
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_IDLE_TIME

public static final int DEFAULT_IDLE_TIME
디폴트 세션 Idle 시간 (단위, 초)

See Also:
Constant Field Values

PARAM_HEADER

protected static final String PARAM_HEADER
Job Parameter Header

See Also:
Constant Field Values
Constructor Detail

GlueServerHandler

public GlueServerHandler()

GlueServerHandler

public GlueServerHandler(GlueJobEventReceiver jobEventReceiver)
Method Detail

sessionOpened

public void sessionOpened(org.apache.mina.common.IoSession session)
세션 오픈 시 callback 메소드. 세션 IDLE 시간을 설정한다. (디폴트 1분)

Specified by:
sessionOpened in interface org.apache.mina.common.IoHandler
Overrides:
sessionOpened in class org.apache.mina.common.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.common.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.common.IoHandler
Overrides:
messageReceived in class org.apache.mina.common.IoHandlerAdapter
Parameters:
session - IoSession
message - GlueHttpRequestMessage

sessionIdle

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

exceptionCaught

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


Copyright © 2013–2017 POSCO ICT. All rights reserved.