python - количество пиросоединений

Я использую Python и пишу что-то, что подключается к удаленному объекту с помощью Pyro4. При запуске некоторых модульных тестов (с использованием pyunit), которые неоднократно подключаются к удаленному объекту с помощью pyro, я обнаружил, что не могу запустить более 9 тестов, иначе тесты застрять и просто висеть там.

Теперь мне удалось это исправить, используя Pyro4.Proxy(PYRONAME:name) в качестве pyroObject: сделайте что-нибудь с объектом...

тогда как раньше я создавал объект в тестовой настройке: def setUp(self): self.pyroObject = Pyro4.Proxy(PYRONAME:name)

а затем использовать self.pyroObject в тестах

Кто-нибудь знает, почему это решило проблему? Спасибо


person Hannah Cooper    schedule 19.02.2015    source источник


Ответы (1)


Когда вы не очищаете прокси-объекты, они сохраняют соединение с демоном pyro. По умолчанию демон принимает 16 одновременных подключений.

Если вы используете синтаксис with.. as..., вы полностью закрываете прокси-сервер после того, как закончили его использовать, и это освобождает соединение в демоне, делая его доступным для нового прокси-сервера.

Вы можете увеличить число до 16, увеличив размер пула потоков Pyro через конфигурацию. В качестве альтернативы вы могли бы использовать тип мультиплексного сервера вместо многопоточного по умолчанию.

person Irmen de Jong    schedule 19.02.2015