2011-09-17 8 views
0

내 사이트를 클릭하는 사람들을 기반으로 일부 분석 데이터를 로깅합니다. 사람이 무언가를 클릭하면 ajax 호출을 통해 내 노드 응용 프로그램에 전화를하지만, 클릭 한 내용이 외부 링크 인 경우 사이트를 떠나기 때문에 원래 요청이 취소됩니다. 클라이언트가 연결을 끊은 후에도 노드가 요청을 처리하는 좋은 방법이 있습니까?사용자가 브라우저를 닫은 후에도 Node.js가 프로세스를 계속 실행할 수 있습니까?

답변

3

실행중인 프로세스가 응답에 내용을 쓸 필요가 없다면 확실히 문제가되지 않습니다. 당신이

  1. 사용자처럼 뭔가를 할 경우
    는 그렇다하더라도, 아마 당신은 "고맙습니다는, 작업이 시작되었다"응답 요청을 제출 어쨌든 문제가되지 않습니다. 응답하기 전에 비동기 적으로 작업을 실행하십시오 (node.js 코드 이 시작하려면 비동기이어야 함).

  2. 작업은 일부 테이블이나 파일 또는 nosql 저장소에 데이터를 저장합니다.

  3. 사용자는 다른 URL로 이동하여 작업 및 상태 (시작됨, 실행 중, 완료 됨) 목록을보고 결과를 볼 수 있습니다.

+0

내 node.js 코드를 보면 내 데이터가 db에 저장된 후 응답을 보내주기를 기다립니다. 즉시 응답을 보내고 도움이되는 것을 볼 것입니다. – Clint

+0

@clint - 예. 데이터 처리를 비동기 적으로 시작하십시오 *. 방법을 잘 모르는 경우 프로세스의 세부 사항과 시도한 내용으로 질문을 업데이트하거나 새로운 질문을 시작하십시오. – hvgotcodes

+0

데이터를 데이터베이스에 저장하는 것이 가장 확실한 비동기 호출입니다. 노드에서 비동기로 만들지 않는 것이 어렵습니다 :-) 나는 클라이언트 AJAX 호출이 브라우저가 그것을 차단하기 전에 때때로 노드에 전달하지 않는다고 생각한다. 나는 더 많은 시험을하고 돌아올 것이다. – Clint

관련 문제