-
[파이썬] eBest Xing api 실시간조회, S3_ 코스피체결 구현 (7)프로그래밍/파이썬 2020. 2. 22. 15:46반응형
[파이썬] 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)
S3_ 쿼리는 요청하는 종목코드에 대해 체결 내역 정보를 실시간으로 수신받을 수 있다.
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 S3EventHandler(EventHandler): def OnReceiveRealData(self, code): shcode = self.event.GetFieldData("OutBlock", "shcode") price = self.event.GetFieldData("OutBlock", "price") Log.write(code + " : " + shcode + " - " + price) class S3(QueryThreadJob): _OP_APPEND = "APPEND" CM_SHCODE = "SHCODE" def __init__(self): QueryThreadJob.__init__(self, "RT_S3_KOSPI", 0.1) def _operation_init(self): self._operation_dict[self._OP_APPEND] = self._operation_append def _operation_call(self, command): self._event = EventUtil.get_event("S3_", S3EventHandler) self._event.SetFieldData("InBlock", "shcode", command[self.CM_SHCODE]) self._event.AdviseRealData() Log.write("Request done : " + command[self.CM_SHCODE]) def _operation_append(self, command): self._event.SetFieldData("InBlock", "shcode", command[self.CM_SHCODE]) self._event.AdviseRealData() Log.write("Request done : " + command[self.CM_SHCODE]) # push append command def append_call(self, command): command[self.CM_COMMAND] = self._OP_APPEND self._push_command(command)
- 7 Line : OnReceiveRealData
이베스트 서버로부터 응답이 수신되면 해당 메소드가 호출된다.
등록된 종목의 코드와 가격을 출력한다.- 18 Line
생성자에서 스레드이름과 큐 타임아웃을 파라미터로 넘긴다.- 20 Line : _operation_init
뉴스 요청과 달리 코스피체결 요청은 기본 오퍼레이션에 종목을 추가할 수 있는 'APPEND' 오퍼레이션이 하나 더있다.
기본 오퍼레이션인 'CALL'은 상위클래스인 QueryThreadJob에서 등록해주기 때문에 등록 과정은 필요없다.
하지만 'APPEND'오퍼레이션은 _operation_init 메소드에서 _operation_dict 딕셔너리에 등록 해준다.- 23 Line : _operation_call
코스피체결 요청에 필요한 파라미터를 설정하고 AdviseRealData 메소드를 통해 해당 쿼리를 요청한다.
이 메소드에서 요청할 수 있는 이벤트 객체를 생성하기 때문에 최초의 호출은 이 메소드부터 호출되어야 한다.- 23 Line : _operation_append
코스피체결 요청은 다수의 종목을 등록할 수 있다. 오퍼레이션 'CALL'을 통해 요청된 상태에서 'APPEND'를 통해 다수의 종목을 등록한다.반응형'프로그래밍 > 파이썬' 카테고리의 다른 글
[파이썬] eBest Xing api 실시간조회, 유틸 클래스 (0) 2020.02.22 [파이썬] eBest Xing api 실시간조회, 테스트 및 실행 화면 (8) (0) 2020.02.22 [파이썬] eBest Xing api 실시간조회, NWS 뉴스 요청 구현 (6) (0) 2020.02.22 [파이썬] eBest Xing api 실시간조회, QueryThreadJob 구현 (5) (2) 2020.02.22 [파이썬] eBest Xing api 실시간조회, ConnectionManager 구현 (4) (0) 2020.02.22