Я запускаю приложение TurboGears с mod_wsgi и apache, используя pymongo, завернутый в Ming, для постоянства. Для отказоустойчивости и масштабирования моего приложения мне было интересно использовать поддержку mongo для наборов реплик через pymongo ReplicaSetConnection.
Однако, как указано в приведенных выше ссылках, необходимо вызывать close()
, когда это делается с каждым объектом pymongo ReplicaSetConnection
, иначе он оставит кучу процессов-зомби, плавающих вокруг (wtf pymongo). Такое поведение не очень хорошо поддерживается в Ming (на самом деле он еще не поддерживает наборы реплик), но мне удалось написать функцию очистки, которая закрывает все соединения pymongo.
Теперь я хочу запустить функцию очистки для очистки процесса для всех процессов моего приложения. У них есть две основные точки входа: mod_wsgi через команды apache и paste. Добавить мою очистку в команды вставки не проблема, но есть ли способ указать функцию очистки для процессов wsgi?
Если нет, какие еще советы по правильной настройке?