2012-06-08 5 views
0

나는 1 초마다 플랫 파일을 읽는 Ruby 서버를 가지고 있으며,이 플랫 파일은 다른 서버에 의해 1 초마다 새로운 데이터로 지속적으로 업데이트되고있다. 이 플랫 파일은 기본적으로 JSON 파일입니다. 문제는, 나는 전체 파일을 반복해서 읽고 싶지 않다는 것이다. 오히려, 나는 루비 서버가 어떤 내용이 새로운 것인지 알아 내서 그 부분 만 읽을 것을 원한다. 그래서 저는 루비에 대한 상태 보존 형 JSON 파서를 찾고 있다고 생각합니다. Ruby를 처음 접했을 때, 저는 그러한 라이브러리에 익숙하지 않았습니다. 아무도 그러한 상황에서 효과가있을만한 것을 제안 할 수 있습니까?루비 용 스테이트 풀 JSON 파서

+0

데이터 수신시 점진적으로 구문 분석 할 수 있기를 원하십니까? –

+0

@FrederickCheung : "내용이 새로운 것"- 추가 전용 파일에 대해 이야기하고 있다고 생각하지 않습니다. –

+0

@FrederickCheung : 언급 된 Sergio와 마찬가지로 새 콘텐츠 만 읽으 려합니다. 해당 파일의 이전 읽기 작업이 끝난 위치를 기록하고 거기에서 읽기를 계속할 수 있기를 원합니다. 그게 문제 야. 나는 그것을하는 방법을 알아낼 수 없다. 또한 임계 값에 도달하면 이전 json 문자열을 삭제하여 파일을 정기적으로 정리하는 데몬을 작성합니다. 그래서 그게 문제에 추가됩니다. 어떤 제안? – InfiniteLoop

답변

0

"stateful JSON parser"와 같은 것은 없습니다. 상태 저장 ("상태 저장 서버"에서와 같이)은 서버 (또는 구문 분석기)가 요청 (구문 분석) 사이에 어떤 상태를 유지함을 의미합니다. 하지만 어쨌든 전체 파일을 읽고 구문 분석해야 할 것입니다.

파일이 작 으면 매번 전체 파일을 구문 분석하면됩니다. 파일이 큰 경우 대신 데이터베이스를 사용하십시오.

+0

"하지만 어쨌든 전체 파일을 읽고 구문 분석해야합니다." 그게 내 문제 야. 매번 그렇게하지 않는 방법이 있습니까? 파서가 다음에 어디서 멈추고 다시 시작하는지 기록 할 수 있습니까? 할 수있는 파서가 있기를 바래요? – InfiniteLoop

+0

그래서 다른 프로세스는 파일에 추가하는 것입니까? –

+0

그리고 네, 파일이 큽니다. 수천 개의 JSON 문자열을 포함하고 있으며 모든 것을 실시간으로 처리하려고합니다. 그래서 매번 전체 파일을 계속 읽고 싶지 않습니다. 데이터베이스를 사용할 수는 있지만이 모듈을 다른 대형 모듈과 연결하고 플랫 파일에 씁니다. 변화는 꽤 복잡하고 내가 원하는 도로가 아닙니다. 그래서 나는 이런 식으로 문제를 해결하려고 노력하고있다. 모든 도움을 주시면 감사하겠습니다! 감사! – InfiniteLoop