2010-04-06 3 views
0

새 파일 (하나의 파일 = 하나의 작업)에 대해 SFTP 폴더를 폴링하여 처리하는 C# Windows 서비스를 작성 중입니다. 서비스의 여러 인스턴스가 동시에 실행될 수 있으므로 서로 밟지 않는 것이 중요합니다.SFTP 폴더를 동시 작업 대기열로 사용하는 가장 좋은 방법

SFTP 폴더가 이상적인 대기열을 만들지 못한다는 것을 알고 있지만 그게 내가해야 할 일입니다. 이 SFTP 폴더를 동시 메시지 대기열로 사용하거나 동시에 사용할 수있는 방법으로 안전하게 나타내려면 무엇을해야합니까? 서비스의

답변

0

여러 인스턴스 동시에 동일한 시스템 또는 다른 사람에

에서 실행 할 수있다?

+0

다른 것 –

0

Windows에서 파일을 움직이는 것이 원자 적 작업인지 확실하지 않습니다. 그렇다면 서비스에서 파일 작업을 선택하면 파일을 다른 폴더로 이동해야합니다. 이동 작업이 성공하면 파일을 작업하는 것이 안전합니다.

1

가장 큰 문제는 서로 밟고 동일한 파일을 처리하는 프로그램의 여러 인스턴스를 처리하는 것입니다.

내가 과거에 이것을 처리 한 방법은 프로그램이 첫 번째 파일을 가져 와서 'filename.txt'에서 'filename.txt.processing'(으)로 바꿉니다. 프로세스는 '.processing'으로 끝나는 파일을 무시하도록 설정되어 서로 밟지 않도록합니다. 나는 파일 이름 바꾸기가 완벽하게 원자 적이라고 생각하지 않지만, 결코 그것으로 어떤 문제도 가지지 못했다.

0

데이터베이스를 사용하여 처리중인 파일, 처리 중이거나 처리 대기중인 파일을 추적 할 수도 있습니다.

이렇게하면 테이블을 새로운 파일로 업데이트하는 데 따르는 복잡성이 추가됩니다.

관련 문제