2013-08-24 1 views
1

나는 각 반복 후에 폐기 될 수있는 1 초마다 데이터를 생성하는 C# 어플리케이션 (스톡 틱 데이터)을 가지고있다. 이 데이터를 Coldfusion (10) 응용 프로그램에 전달하고 C# 응용 프로그램에서 매초 파일에 데이터를 쓰고 Coldfusion 응용 프로그램에서 해당 데이터를 읽는 것을 고려했지만 문제가 발생할 가능성이 큽니다. 두 응용 프로그램이 동시에 파일을 읽거나 쓰려고 할 가능성이 있습니까?어떻게 ColdFusion 10에서 C# 메모리 맵 파일에 액세스 할 수 있습니까?

메모리 매핑 된 파일을 사용하는 것이 더 나은 접근 방법일까요? 그렇다면 어떻게 ColdFusion에서 메모리 매핑 된 파일에 액세스 할 수 있습니까?

모든 조언을 주시면 감사하겠습니다. 감사.

답변

2

우리는 watchlists, charting 등의 진드기 추적에 의해 진드기를 포함하는 재고 응용 프로그램을 제작했습니다. 파일의 아이디어는 일정한 간격으로 단일 재고에 대해 이야기하지 않는 한 대단히 좋은 아이디어는 아닙니다. 내 경험상 "두 번째"마다 변화가있을 수 있습니다. 일부 스토크 (AAPL 또는 GOOG는 좋은 예입니다)는 피크 시간대에 초당 수 백 개의 "진드기"가 있습니다.

그래서 모든 틱을 가져 가지 않고 실제로 "1 초마다 파일을 업데이트"하면 파일 관람 게이트웨이를 사용하여 이벤트를 발생시키고 파일을 볼 수 있다는 아이디어가 있습니다 업데이트됩니다.

하지만 "중간에"뭔가를 소개하고 있음을 명심하십시오. 이제 파일이 Java 또는 CF 응용 프로그램과 견적 엔진 사이에 있습니다. 그게 당신이 무엇을 선택하든 레이턴시를 도입 할 것입니다 (파일 핸들을 가져오고 해제하는 등). 그리고 한 프로세스의 잠금은 다른 프로세스의 잠금을 방해 할 수 있습니다.

페이 스북 업데이트를 처리 할 때 miliseconds는별로 중요하지 않습니다. - 나에게 동의하지 않는 십대 소녀들도 있음에도 불구하고 : 주가 지수를 사용하면 작업의 절반이 밀리 초 단위로 면도됩니다 가능한 한 실시간에 가깝습니다.

일반적으로 중간에 데이터를 연결하는 대신 소켓을 선택하는 것이 좋습니다. 그러면 견적 엔진은 감시 목록을 유지하고 정상적인 배열을 업데이트하지만 스트림을 다운 스트림으로 소켓 엔진으로 보냅니다. 소켓 엔진은이를 처리 할 수있는 항목 (차트 응용 프로그램, 감시 목록, 웹 페이지의 socketgateway 등)에 푸시합니다.

호프가 도움이되기를 바랍니다. 명확한 대답은 아니지만, 당신이 직면하는 장애물에 대한 명확한 설명입니다.

+0

자세한 답변을 보내 주셔서 감사합니다. 당신은 정확합니다, 나는 내가 쫓고있는 모든 틱이라면 그 일을 과소 평가할 것입니다. 시도하지도 않을 것입니다. 제 프로그래밍 기술은 매우 제한적입니다. 나는 실제로 1 초 간격으로 읽기를 취한 후에 다소 "거의"가까운 라이브 개요를 제공합니다. 여분의 대기 시간을 추가하는 것에 대해 크게 걱정하지 않지만 언급 한 잠금에 대해 걱정했습니다. 그래서 나는 메모리 매핑 된 파일 (non-persistent)이 더 좋은 방법 일 수 있다고 생각한 이유가 무엇인가? 하지만 일단 CF를 통해이 파일에 액세스하는 방법을 모르겠다. ( – AlanJames

+0

가상 드라이브 ("F :와 같은 드라이브를 만드는 소프트웨어를 사용해보십시오. \ "다른 프로세스에 투명 함). 여러분이 거기에 갈 수 있습니다 ... 행운을 빈다. –

관련 문제