프로그래밍/파이썬
[파이썬] eBest Xing api 실시간조회, NWS 뉴스 요청 구현 (6)
말춘이
2020. 2. 22. 15:44
반응형
[파이썬] eBest Xing api 실시간조회, 멀티스레드 설계 (1)
[파이썬] eBest Xing api 실시간조회, 스레드 설계 구현 (2)
[파이썬] eBest Xing api 실시간조회, ThreadJob 구현 (3)
[파이썬] eBest Xing api 실시간조회, ConnectionManager 구현 (4)
[파이썬] eBest Xing api 실시간조회, QueryThreadJob 구현 (5)
[파이썬] eBest Xing api 실시간조회, NWS 뉴스 요청 구현 (6)
[파이썬] eBest Xing api 실시간조회, S3_ 코스피체결 구현 (7)
[파이썬] eBest Xing api 실시간조회, 테스트 및 실행 화면 (8)
NWS 쿼리는 요청 시 종료 전까지 최신 뉴스에 대한 정보를 수신받을 수 있다.
from name_yalsooni.crawler_py.ebest.realtime.queryjob import EventHandler
from name_yalsooni.crawler_py.ebest.realtime.queryjob import QueryThreadJob
from name_yalsooni.crawler_py.ebest.util import Log, EventUtil
class NWSEventHandler(EventHandler):
def OnReceiveRealData(self, code):
title = self.event.GetFieldData("OutBlock", "title")
Log.write(code + " : " + title)
class NWS(QueryThreadJob):
CM_NWCODE = "NWCODE"
def __init__(self):
QueryThreadJob.__init__(self, "RT_NWS", 0.5)
def _operation_init(self):
pass
def _operation_call(self, command):
self._event = EventUtil.get_event("NWS", NWSEventHandler)
self._event.SetFieldData("InBlock", "nwcode", command[self.CM_NWCODE])
self._event.AdviseRealData()
- 16 Line 생성자에서 스레드이름과 큐 타임아웃을 파라미터로 넘긴다. |
- 19 Line 상위 클래스인 QueryThreadJob에서 operation 딕셔너리에 기본 오퍼레이션인 'CALL'은 등록해 줬다. 뉴스 요청의 오퍼레이션은 'CALL' 하나 밖에 없으므로 해당 메소드는 등록 해줄께 없다, pass한다. |
- 21 Line : _operation_call _operation_call 메소드에선 뉴스의 알맞은 요청 파라미터를 설정하고 AdviseRealData() 메소드를 통해 요청한다. 이벤트 객체 생성 시 등록된 NWSEventHandler의 OnReceiveRealData메소드의 의해 응답이 수신된다. |
반응형