2014-07-07 3 views
0

서버 쪽과 프런트 엔드에 C# Web API 프로젝트가 있습니다. ExtJS 4.2.1 (Javascript 프레임 워크 클라이언트)이 있습니다.실시간 프로세스 정보를위한 최선의 방법/Server + JS 클라이언트

장기 실행 프로세스 (약 5 분)를 시작하라는 요청이있는 곳이 있는데, 사용자에게 실행중인 프로세스의 상태를 보여주고 싶습니다.

기본적으로, 프로세스는 데이터베이스 (800)의 모든 직원을위한 특별한 계산을 실행, 그래서 사용자가 그 순간에 처리되고있는 직원 알려 싶습니다.

그래서 나는이 일을 두 가지 방법으로 생각하고, 어쩌면 둘 다있는 것은 괜찮 알고하지 않습니다.

  1. SignalR을 사용하면 실시간으로 프로세스 정보를 표시 할 수 있습니다.
  2. database table 모든 프로세스 로그 (처리중인 모든 직원)에게 씁니다. 나는 첫 번째 방법을 사용하는 경우 사용자가 브라우저를 닫을 경우

, 그는 과정에 대한 모든 정보를 잃어 버리게된다 그가 응용 프로그램에 로그인하면 다시 그는 단지 실제 상태를 볼 수 있습니다.

두 번째 접근법을 사용하는 경우 사용자가 앱에 다시 로그인하면 모든 정보를 볼 수 있으며 클라이언트 측 타이머를 사용하면 5 초마다 데이터를 새로 고칠 수 있습니다.

누구나 이와 비슷한 것을 구현 했습니까? 모든 조언을 부탁드립니다.

답변

0

두 가지 조합을 사용해야합니다. 직원을 계산할 때 상태를 데이터베이스에 저장하고 서비스 버스에 변경 사항을 게시하십시오.

SignalR이이 메시지를 선택하여 클라이언트로 전달합니다. 이 방법으로 사용자는 그가 연결할 때 이전 상태를 볼 수 있고 새로운 상태는 SignalR로 도착합니다. 이 작업을 매우 쉽게 해주는 Event Aggregator 프록시를 만들었습니다.

https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/wiki

을 설정하는 위키에 따라, 여기 데모 프로젝트를 https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/tree/master/SignalR.EventAggregatorProxy.Demo.MVC4

라이브 데모 http://malmgrens.org/Signalr/

입니다