Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Vladimir Marunin                     2:5020/400     02 Mar 2005  13:34:46
 To : All
 Subject : Вопрос про POE и POE::Component::IKC
 -------------------------------------------------------------------------------- 
 
 Hello All
 
 Изучаю POE, взял за основу 
 http://poe.perl.org/?POE_Cookbook/Application_Servers_2 и попробовал сделать 
 2 параллельных коннекта, вот код клиента:
 
 client_bug.pl
 -----------------------------------------------------------------------
 #!/usr/local/bin/perl
 
 use warnings;
 use strict;
 
 use POE::Component::IKC::ClientLite;
 
 use Time::Local qw/timelocal/;
 use Data::Dumper;
 
 if(fork()) {
     #Parent
     print "Parent: $$\n";
     SimplyTask();
 }
 else {
     # Child
     print "Child: $$\n";
     SimplyTask();
 };
 sub SimplyTask {
     my $name   = "Client$$";
     my $remote = create_ikc_client(
         port    => 31338,
         name    => $name,
         timeout => 5,
     );
     die $POE::Component::IKC::ClientLite::error unless $remote;
 
     my $return_value;
     my @numbers = qw(8 6 7 5 3 0 9);
     print "Summing $$  : @numbers\n";
 
     $return_value = $remote->post_respond( 'application/calc_sum', 
 \@numbers );
     die $POE::Component::IKC::ClientLite::error unless defined 
 $return_value;
 
     print "The sum is $$ : $return_value\n";
 };
 -----------------------------------------------------------------------
 server.pl не трогаем вовсе. Запускаем
 
 [monster@freebsd] ~/POE_test > perl client_bug.pl
 Parent: 98689
 Child: 98690
 Summing 98690  : 8 6 7 5 3 0 9
 Summing 98689  : 8 6 7 5 3 0 9
 The sum is 98689 : 38
 [monster@freebsd] ~/POE_test > Timed out waiting for resonse
 
 Тот кто запустился вторым - сдох. И так всегда, пробовал даже запускать 
 файлики в разных окнах.
 Hе понятно почему оба клиента не отрабатывают параллельно...
 Кто-нибудь сталкивался с такой проблемой?
 
 PS  processes=>5 в IKC::Server->spawn не предлагать!
 Hекошерно это на каждый коннект делать fork, зачем тогда вообще POE? Хочется 
 именно в single-process, single-thread обрабатывать запросы.
 
 --
 Vladimir Marunin 
 --- ifmail v.2.15dev5.3
  * Origin: RTComm.RU (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Вопрос про POE и POE::Component::IKC   Vladimir Marunin   02 Mar 2005 13:34:46 
Архивное /ru.perl/91816dde842e.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional