2013-07-04 3 views
2

제 생각에 NodeJS는 모든 이벤트가 이벤트 큐에서 빠져 나갈 때까지 계속 실행됩니다. 다양한 경우에 제 3 자 모듈을 사용하는 스크립트를 작성했으며 원하는 것을 수행하지만 종료하지는 않습니다. 다른 타사 모듈 중 일부는 이벤트 대기열에 뭔가 있기 때문에 그 가정합니다.NodeJS가 이벤트 큐를 이해함

대기열을 보거나 배수를 권장하거나 심지어 누가 할 일이 있는지 결정할 수있는 방법이 있습니까? (어쨌든 process.exit를 사용하면 아무런 해가되지 않을 수도 있음을 알기에 충분한 정보를 얻을 수 있습니다. 완료)

의견을 보내 주셔서 감사합니다.

+1

"NodeJS는 모든 이벤트가 이벤트 대기열에서 배출 될 때까지 실행 된 다음 종료됩니다"- 정말요? 따라서 Node를 사용하여 웹 사이트를 구축하면 아무도 방문하지 않으면 자체적으로 종료됩니다. 어쩌면 내가 너의 질문을 오해하고있다. –

+0

process._getActiveHandles() 및 process._getActiveRequests() (https://groups.google.com/d/msg/nodejs/ztspFn-BKgE/qw1I9VLSG_gJ) –

+0

@ PaulD.Waite에서 리소스를 실제로 절약 할 수 있습니다. 't ;-)하지만 진지하게 - NodeJS가 나갈 때/나가지 않을 상황 "에 대한 링크가 있으면 도움이 될 것입니다. 아래의 답변에서 적어도 SetInterval을 추가하면 응용 프로그램이 중지되지 않습니다. – nwaltham

답변

1

해당 모듈에 액세스 할 수 없다면 할 수있는 일이 많지 않습니다.

SetInterval은 응용 프로그램이 중지되는 것을 방지하지만 해당 타이머에서 ClearInterval을 호출 할 수 있습니다. 애플리케이션을 제거해야하는 경우 해당 간격 객체를 관리하고 클리닝을 수행하는 것이 좋습니다.

해킹과 직선적 인 해결책 중 하나는 SetInterval 기본 방법을 간격을 등록하고 사용 관점에서 기본값과 동일한 방식으로 작동하도록 맞춤 설정하여 '대체'하는 것입니다. 그렇게하면 모든 간격 핸들을 더 쉽게 수집 할 수 있습니다.