SMS 스케쥴러
- 작성자 :
- 송*대
- 작성일 :
- 2010-11-02 16:02:04
- 조회수 :
- 2,829
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
일단 Control 단에 Sms sms = new Sms();
객체를 생성하여 현재 진행중이 프로젝트의 SMS를 전송하도록 개발중인데요...
SMEConfig.properties에도 실제 테스트 가능한 정보를 Mgov 측에게 받았습니다.
현재는 테스트 중으로 20000번 포트를 쓰고 있고요
질문1.입니다.
전자정부프레임워크의 M-Gov_SMS_전송_컴포넌트_가이드 문서에 보면
쿼츠를 사용한 스케쥴러를 돌리라고 되어있는데요
해당 스케쥴러가 동작하면서 하는 업무는 무엇인가요??
문자가 게이트웨이쪽으로 보내어 진후 통신사에서 접수된 후 실제 개인 사용자의 단말기로 전송이 되었는지 여부를 확인하는건가요?
질문2.입니다.
Mgov측에서는 Receiver가 있어야 한다고 해서 위 스케줄러를 돌렸는데
Mgov와의 접속이 한번 이루어지면 다시 연결할 필요가 없다고 말을 하고 있습니다.
그러면 저의 개발측에서 스케줄러를 빼도 상관이 없다는 말인가요??
객체를 생성하여 현재 진행중이 프로젝트의 SMS를 전송하도록 개발중인데요...
SMEConfig.properties에도 실제 테스트 가능한 정보를 Mgov 측에게 받았습니다.
현재는 테스트 중으로 20000번 포트를 쓰고 있고요
질문1.입니다.
전자정부프레임워크의 M-Gov_SMS_전송_컴포넌트_가이드 문서에 보면
쿼츠를 사용한 스케쥴러를 돌리라고 되어있는데요
해당 스케쥴러가 동작하면서 하는 업무는 무엇인가요??
문자가 게이트웨이쪽으로 보내어 진후 통신사에서 접수된 후 실제 개인 사용자의 단말기로 전송이 되었는지 여부를 확인하는건가요?
질문2.입니다.
Mgov측에서는 Receiver가 있어야 한다고 해서 위 스케줄러를 돌렸는데
Mgov와의 접속이 한번 이루어지면 다시 연결할 필요가 없다고 말을 하고 있습니다.
그러면 저의 개발측에서 스케줄러를 빼도 상관이 없다는 말인가요??
A
안녕하세요.. 송종대님..
우선 SMS 수신에 대한 스케줄러 설정은 다음과 같습니다. (예시)
<!-- SMS 전송 결과 수신 처리 -->
<bean id="smsInfoReceiver"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="EgovSmsInfoReceiver" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="smsInfoReceiverTrigger"
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="smsInfoReceiver" />
<!-- 시작하고 1분후에 실행한다. (milisecond) -->
<property name="startDelay" value="60000" />
<!-- 매 60초마다 실행한다. (milisecond) 데몬 형식으로 계속 기동 중 -->
<property name="repeatInterval" value="60000" />
</bean>
실제 수신을 담당하는 부분은 @Service로 등록되어 있습니다. (egovframework.com.cop.sms.service.impl.EgovSmsInfoReceiver)
이 EgovSmsInfoReceiver가 수신 처리를 담당합니다.
질문1 답변
말씀하신 것 처럼 전송할 때에는 M-Gov측 결과만 받기 때문에 실제 통신사 처리에 대한 결과를 별도로 받아야 합니다.
이 결과를 받는 과정이 EgovSmsInfoReceiver의 역할입니다. (결과는 DB에 기록)
질문2 답변
EgovSmsInfoReceiver가 데몬 형식으로 계속적으로 연결을 유지하고 있습니다.
(스케줄러에 의해 주기를 주었지만... concurrent를 false로 주었기 때문에 하나의 인스턴스가 계속 유지됩니다.)
따라서 MGov에서 이야기하는 접속을 유지하고 있는 것입니다.
스케줄러에서 빼셔도 상관없지만.. 최초 한번의 기동을 해주셔야 합니다.
(즉, 스케줄러를 위와 같이 하시면.. 별도의 기동이 없이 하나의 인스턴스가 유지됩니다.)
그럼.. 즐거운 하루되십시오.
감사합니다.
우선 SMS 수신에 대한 스케줄러 설정은 다음과 같습니다. (예시)
<!-- SMS 전송 결과 수신 처리 -->
<bean id="smsInfoReceiver"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="EgovSmsInfoReceiver" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="smsInfoReceiverTrigger"
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="smsInfoReceiver" />
<!-- 시작하고 1분후에 실행한다. (milisecond) -->
<property name="startDelay" value="60000" />
<!-- 매 60초마다 실행한다. (milisecond) 데몬 형식으로 계속 기동 중 -->
<property name="repeatInterval" value="60000" />
</bean>
실제 수신을 담당하는 부분은 @Service로 등록되어 있습니다. (egovframework.com.cop.sms.service.impl.EgovSmsInfoReceiver)
이 EgovSmsInfoReceiver가 수신 처리를 담당합니다.
질문1 답변
말씀하신 것 처럼 전송할 때에는 M-Gov측 결과만 받기 때문에 실제 통신사 처리에 대한 결과를 별도로 받아야 합니다.
이 결과를 받는 과정이 EgovSmsInfoReceiver의 역할입니다. (결과는 DB에 기록)
질문2 답변
EgovSmsInfoReceiver가 데몬 형식으로 계속적으로 연결을 유지하고 있습니다.
(스케줄러에 의해 주기를 주었지만... concurrent를 false로 주었기 때문에 하나의 인스턴스가 계속 유지됩니다.)
따라서 MGov에서 이야기하는 접속을 유지하고 있는 것입니다.
스케줄러에서 빼셔도 상관없지만.. 최초 한번의 기동을 해주셔야 합니다.
(즉, 스케줄러를 위와 같이 하시면.. 별도의 기동이 없이 하나의 인스턴스가 유지됩니다.)
그럼.. 즐거운 하루되십시오.
감사합니다.