2010-11-23 2 views
1

대용량 파일 수신 및 처리를 담당하는 Windows 서버 측 응용 프로그램을 빌드해야합니다 (프로세스 작업은 약 3 시간이 걸립니다).웹 서버의 FIFO를 시뮬레이트하는 .NET 응용 프로그램 만들기

누가이 같은 경우 (Windows 서비스 일 가능성이 가장 큽니까?)와 그 경우 서비스에 새 파일을 처리 할 수있는 방법을 알려줄 수 있습니까?

추신 : 프로세스 작업이 병렬 처리를 할 수 없다

편집 : 어떤 답을 찾고 후, 나는이 문제를 바꿔하려고합니다. 업로드 부분이 이미 작동 중입니다. 내 문제는 업로드 후 파일을 통해 알고리즘을 실행해야한다는 것입니다. 이 알고리즘은 단일 파일을 처리하는 데 3 시간이 걸립니다. 나는 처리 할 파일이 어딘가에 저장되도록하고 싶다. (메모리에, db에, 그것은 정말로 중요하지 않다.) 이전 파일이 끝날 때 다음 파일 만 분석 할 것이다.

답변

0

유휴 상태 (어떤 파일도 처리하지 않음)에서 다음에 처리해야하는 파일을 결정하고 실행하는 콘솔 응용 프로그램이 생겼습니다.

응용 프로그램이 부팅 될 때 시작되도록 구성됩니다.

0

몇 가지 간단한 데이터 수집을 사용하여 각 프로세스의 스레드를 수집하십시오.

예를 들어 List와 같이 사용할 수 있으며 현재 처리중인 스레드의 인덱스 인 변수를 정의 할 수 있습니다.

+0

어느 옵션을 선택하든 처리해야하는 파일을 알기 위해 데이터 수집을 사용해야합니다. 내 문제는 여기에 윈도우 서비스, 콘솔 응용 프로그램 등을 구축할지 결정하는 것입니다. – dcarneiro

0

은 내가 FTP 서버를 설정 제안, 그리고 아마도 FileSystemWatcher은 업로드되는 파일을 선택하고

http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx

+0

현재 업로드 파일이 서버에 업로드되고 업로드가 끝날 때 처리하는 ASP 파일이 있습니다. 문제는 n 명의 사용자가 n 개의 파일을 동시에 업로드하기로 결정한 경우입니다. 프로세스는 프로세서가 무거 우므로 순차적 인 방법 (예 : FIFO)으로 만들어야합니다. – dcarneiro

+1

@Daniel. 무엇을 'FIFO'로 만들고 싶습니까? 웹 서버, 이미지 처리? 나는 당신이 이것에 대해 아마 충분히 생각했다고 생각하지 않는다. 파일 업로드가 프로세서에 과장되어서는 안됩니다. 프로세서에서 처리하는 것이 중요합니까? – TimC

+0

파일 업로드는 프로세서에 무리가 없지만 각 파일은 약 600MB의 원시 데이터입니다. 업로드 부분이 이미 작동하고 있습니다. 문제는 업로드 후 프로세서에 있습니다. 처리하는 데 약 3 시간이 걸리는 파일을 통해 알고리즘을 실행합니다. n 명의 사람들이 원시 데이터 파일을 동시에 업로드하려고 시도하면 많은 데이터가 손실됩니다. 그냥 도착하는 파일을 FIFO로 처리하는 방법이 필요합니다. – dcarneiro

0

당신은 파일을 업로드 할 BITS을 사용할 수 있습니다 그들을 처리 할 수 ​​있습니다. 해당 API here에 대한 C# 래퍼가 있습니다.

업로드의 경우 server-side dependency on IIS입니다.

BITS는 download.microsoft.com에서 필요한 보안 및 기타 업데이트를 컴퓨터에 자동으로 넣는 데 사용되는 기술입니다 (다운로드 모드).

+0

현재 업로드 파일이 서버에 업로드되고 업로드가 끝날 때 처리하는 ASP 파일이 있습니다. 문제는 n 명의 사용자가 n 개의 파일을 동시에 업로드하기로 결정한 경우입니다. 프로세스는 프로세서가 무거 우므로 순차적 인 방법 (예 : FIFO)으로 만들어야합니다. – dcarneiro

+1

예, BITS를 사용하는 것이 클라이언트 주도형이라고 생각합니다. 서버에서 시퀀싱 로직이 필요하지 않은 것처럼 들리지만, 미안합니다. –

관련 문제