2012-11-30 2 views
0

웹 서비스를 만들고 있습니다. 클라이언트는 XML을 사용하여 POST를 통해 RETURN URL로 정보를 보냅니다. 클라이언트는 RETURN URL이 POST 메시지를 수신했음을 확인하는 상태 표시기 인 "성공"또는 "실패"만 수신합니다.ASP 즉시 응답을 보내고 더 처리하십시오.

그런 다음 RETURN URL (호스트)은 클라이언트가 보낸 XML 데이터를 처리합니다.

문제는 처리하는 데 몇 분이 걸릴 수 있다는 것입니다. 바로 상태 메시지를 보내고 XML 데이터 처리를 계속하고 싶습니다.

이 문제를 해결하는 방법에 대한 조언이 있으십니까?

+0

'Response.Flush()'가 유용 할 수 있는지 확인하십시오. – SearchAndResQ

답변

0

아마이 작업을 수행하는 방법은 여러 가지가 있습니다. 첫 번째로 염두에 두어야 할 것은 XML 레코드를 데이터베이스 레코드에 저장하고 "성공"상태를 클라이언트에 반환하는 것입니다.

데이터베이스에 새 레코드를 확인하고 더 이상 없을 때까지 처리하는 프로세스를 몇 초 또는 몇 분마다 실행하도록 설정합니다.

이렇게 한 번 ASP에서 그룹 문자 서비스를 구현했습니다. 들어오는 XML 파일과 같은 수신 SMS 메시지는 데이터베이스에 저장됩니다. 새로운 메시지를 찾았을 때마다 1 분 또는 2 분마다 프로세스가 실행되어 메시지에 무엇을 할지를 말했습니다. 메시지가 그룹에 새 메시지를 보내는 명령 인 경우 해당 보내는 메시지는 다른 데이터베이스에 저장되고 다른 프로세스는 해당 메시지를 보낸 주기적으로 실행됩니다. 전송할 수있는 분당 메시지 수에 대한 통신사의 규정 한도에 도달 할 때까지 메시지를 전송 한 다음 종료합니다.

이 작업은 모두 서버에서 실행되는 타사 스케줄러가있는 클래식 ASP에서 수행되었습니다. 잘됐다.

+0

좋은 접근 방법입니다. 나는 그것을 구현하려고 노력할 것이다. 감사 –

0

"완료된"응답을 얻을 때까지 서버를 너무 자주 폴링해야합니다.

+0

할 수 없습니다. 아무 소용이 없다. 클라이언트는 프로세스가 완료되었는지 여부에 상관하지 않습니다. XML 데이터를받은 호스트의 확인이 필요합니다. –

0

비동기로 반환하도록 웹 서비스를 설정하십시오. 당신의 닷넷에서 그 일을하는 경우 여기에 오라클에서 그것을 수행하는 방법 몇 가지 정보가있어 당신이 자바를 작성하는 경우에는 웹 서비스 기능에

MSDN Asynchronous web service

넣어 매개 변수가있다. 나는 Java에 익숙하지 않았기 때문에 정확히 어떻게 완성되었는지는 모르지만 여기에 문서가있다.

Oracle Asynchronous web service

관련 문제