저는 mod_wsgi와 아파치로 TurboGears 앱을 실행하고 있습니다. pymongo를 사용하여 지속성을 위해 Ming으로 래핑했습니다. 실수로 응용 프로그램을 확장하려면 mongo가 pymongo ReplicaSetConnection을 통해 복제 세트를 지원하는 데 관심이있었습니다.WSGI 포스트 프로세스 클린업
그러나 위의 링크에서 지정된대로 모든 pymongo ReplicaSetConnection
개체를 완료하면 close()
을 호출해야합니다. 그렇지 않으면 좀비 프로세스가 (wtf pymongo) 주위에 떠있게됩니다. 이런 종류의 동작은 Ming에서 아주 잘 지원되지는 않지만 (실제로 복제 세트를 아직 지원하지는 않습니다) 모든 pymongo 연결을 닫는 정리 기능을 작성했습니다.
이제 모든 내 앱 프로세스의 정리 정리에서 내 정리 기능을 실행하고 싶습니다. 여기에는 mod_wsgi에서 apache 및 paster 명령이라는 두 가지 기본 항목이 있습니다. paster 명령에 내 정리를 추가하는 것은 문제가되지 않지만 wsgi 프로세스에 대한 정리 기능을 지정하는 방법이 있습니까?
그렇지 않으면 올바르게 설정하기위한 다른 조언이 필요합니까?
나는 이것이 충분해야한다고 생각합니다. 세션을 닫지 않으면 프로세스가 멈추어 서 언급 한 "백그라운드 작업"이 주 프로세스에 있다고 가정합니다. 몇 가지 검사를 할 때 여기에서 확인하겠습니다. – Will
정리 기능은 atexit.register()를 호출하는 각 WSGI 프로세스에서 호출됩니다. –
거기에 WSGI 자체에 뭔가 표준이 없습니까? –