이것은 복잡한 프로세스에서 어떻게 실패 지점을 찾을 수 있는지에 대한 질문입니다. 내가 선물 시장에 연결 Python 2.7
와 QuickFix
을 사용하고내 스트리밍 데이터가 멈추는 이유를 알아내는 방법은 무엇입니까?
을 (당신은. 실제로 와우 ... 무슨 일이 잘못 알아낼 수있는 경우), 나는 데이터를 처리하고 등 dataframes에 넣어 pandas
을 사용하고 있습니다 과정은 다음과 같습니다 :
교환 액세스를 제공하는 TT FIX 어댑터에 연결하십시오.
스트리밍 데이터를 생성하는 MarketDataIncrementalRefreshRequest를 제출하십시오 (매매가 이루어질 때마다이를보고합니다). 결과적으로, 사용 중일 때 수신 메시지 사이의 시간은 10 밀리 초 정도가 될 수 있습니다.
각 메시지는 구문 분석되고
pandas
데이터 프레임으로 변환되며 해당 시장에 대한 기존 데이터 프레임과 연결됩니다. 이에 대한 코드 :#df is dataframe of trades with 10 columns df.index = pd.to_datetime(df.TIME) #concatenate with prior data #TS_DIC is a dictionary holding trade data for various markets try: df_prev = TS_DIC[market_key] TS_DIC[market_key] = pd.concat([df_prev,df]) except: #in the case this is the first message received: TS_DIC[market_key] = df #now write to disk try: #if file exists just write to_file = open('path/for/data', 'a+') df.to_csv(mode='a+', path_or_buf= to_file, header=False, index=False) to_file.close() except: #create the file with headers and write to_file = open(path+name, 'wb') df.to_csv(path_or_buf= to_file, index=False) to_file.close()
이 과정은 다음 작동이 중지, 때때로 분, 때로는 시간 동안 잘 작동합니다. 오류가 전혀 없으며 멈추게됩니다. 결과는 갭이있는 데이터입니다. 2 단계를 다시 수행하여 프로세스를 다시 시작할 수 있습니다.
높은 처리량 데이터 및 어쩌면 이러한 소프트웨어 패키지에 익숙한 사람의 도움을 주시면 감사하겠습니다.
여기에서 문제가 될 가능성이있는 것은 무엇입니까? 무엇이 잘못되었는지를 어떻게 알 수 있습니까?
위 실제로 문제를 해결하는 데 도움이되지 않았다 의견에 의해 제안 오류를 인쇄 : 나는 그것을 정리하는 방법이 질문에 건너 온 사람이 알려 것
지금 중지되면 예외가 표시되지 않으므로 아무 것도 표시되지 않습니다. 귀하의 경로를 돕기 위해, 나는 시스템 오류를 포함한 모든 것을 잡는 예외 조항이 없도록 제안합니다. 그런 다음 stdout 또는 logging을 통해 예외를보고합니다. 두 예외 모두에 대해 예외를'except as err :'및'print (str (err))'행으로 변경하십시오. – CasualDemon
감사합니다 @CasualDemon, 시장이 일요일 저녁에 열리 자마자이를 시도 할 것입니다. – Wapiti
또한 traceback 모듈을 사용하여 추적을 인쇄 할 수 있습니다. 'traceback.print_exc()'는 현재 예외에 대한 추적을 출력합니다. – cpburnz