а ссылку на пример поиграться?

09.10.2013, 07:26, "ksvs" <[email protected]>:
> Есть приложение, в котором главный процесс и дочерние общаются между собой по 
> сокетам, используя EV модуль.
> Дочерние процессы получают информацию от главного, делают HTTP запросы, 
> анализируют и возвращают результат главному. В дочерних процессах запросы 
> идут параллельно с использованием либо Net::Curl::Multi, либо AnyEven::HTTP.
>
> Все было отлично, пока не понадобилось в главном процессе перед fork, сделать 
> HTTMP запрос. LWP использовать можно, но не хочется.
> Используемые варианты:
> 1. Делаем первый запрос при помощи AnyEven::HTTP, дочерние работают с Curl - 
> все отлично. Это для проверки.
> 2. Делаем первый запрос при помощи AnyEven::HTTP на несуществующий адрес, 
> дочерние работают с AnyEven::HTTP - все нормально.
> 3. Делаем первый запрос при помощи AnyEven::HTTP на существующий адрес, 
> работа AnyEven::HTTP в дочерних процессах зависает. При этом общение между 
> процессами идет: гонял ping для подтверждения того, что EV не завис и система 
> коммуникаций между процессами жива.
>
> Может кто-то сталкивался с таким поведением AnyEven::HTTP?
>
> Сделал максимально простой вариант для теста.
> В нем с первоначальным вызовом AnyEven::HTTP, в дочернем процессе 
> AnyEven::HTTP, стал работать, но очень-очень медленно. Точнее все зависит от 
> того, как карты лягут: без первого вызова время выполнения 1,24 секунды, а с 
> первым - может быть 21 секунд, а может быть 5 секунд.
>
> Но ведь с Curl работает отлично. Значит дело не в EV, а в AnyEven::HTTP.
> Для подтверждения этого вместо первого вызова AnyEven::HTTP, сделал просто 
> открытие сокета, EV::WRITE, EV::READ - все работает отлично.
>
> AnyEven::HTTP настраивал, чтобы он закрывал все сокеты. Это перед форком. Да 
> и делается ведь EV::break перед форком.
>
> Интересно понять причину этого.
>
> ,
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org

-- 
С уважением
Николай Мишин

-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить