2010-03-15 3 views
1

올바른 방향으로 약간 밀어야합니다. 여기에 내 문제가있다 : FTP 서버의 txt 파일에 주소가 저장된 클라이언트에게 전자 메일 메시지를 보내는 매우 신뢰할 수있는 서비스를 만들어야한다. 단일 txt 파일에는 항목 수가 제한되지 않을 수 있습니다. 대개 파일에는 약 300,000 개의 항목이 들어 있습니다. 우리가 ProcessStatus을 요청할 수있는txt 파일에서 이메일을 전송하는 JBoss 클러스터 서비스

TaskHandle sendEmails(String ftpFilePath); 
ProcessStatus checkProcessStatus(TaskHandle taskHandle); 

방법 sendEmails() 반환 TaskHandle :

서비스는 두 가지 간단한 방법과 인터페이스를 제공합니다.

신뢰할 수있는 이러한 클러스터링 서비스가 필요합니다. 단일 txt 파일을 처리하는 데 시간이 오래 걸릴 수 있습니다. 클러스터에서 한 노드를 다시 시작하면 전자 메일을 보내지 않아도됩니다.

우리는 서비스의 한 인스턴스가 주어진 시간에 실행되도록하는 훌륭한 HASingletonController와 함께 제공되는 JBoss AS 4.2.0을 사용합니다.

하지만 일단 장애 복구가 발생하면 두 번째 서비스는 첫 번째 서비스가 중단 된 곳에서 작업을 계속해야합니다.

두 번 이메일을 보낼 가능성이없는 방식으로 클러스터의 노드간에 상태를 공유하려면 어떻게합니까?

답변

3

메시징을 사용하여 메일 보내기에서 파일 읽기를 분리 할 수 ​​있습니다. 한 프로세스가 파일을 읽고 1에서 N 전자 메일 주소를 포함하는 JMS 메시지를 보내고 MDB에서 메시지를 받고 전자 메일을 보내도록하십시오. 또 다른 옵션은 데이터베이스와 직접 동기화하고, 읽기 프로세스가 주소와 상태를 DB에 삽입하고 데이터베이스에서 주소를 읽으면 이메일을 보내고 상태를 업데이트하는 것입니다.

관련 문제