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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Yuri A. Wolf                         2:5020/400     23 Jan 2002  09:54:22
 To : All
 Subject : dbh и fork()
 -------------------------------------------------------------------------------- 
 
 Hi, All!
 
 Давно заметил проблемму, решаю извращениями всякими, но хочется в корне
 исправить:
 
 Вот пример скоипта:
 
 #!/usr/bin/perl -w
 use strict;
 use DBI;
 
 my $dbname   = 'mydbname';
 my $host     = '127.0.0.1';
 my $user     = 'myuser';
 my $password = 'mypasswd';
 
 my $sth;
 my $dbh = DBI->connect("DBI:mysql:database=$dbname;host=$host",
                        $user, $password,  {'RaiseError' => 1})
        || die "Can't connect: $DBI::errstr\n";
 
 my $cond = 1;
 while ($cond) {
   $sth = $dbh->prepare("SELECT * from mytable WHERE SOMECONDITION")  || die
 "$dbh->errstr\n";
   $sth->execute || die "$dbh->errstr\n";
 
   while (my $ref = $sth->fetchrow_hashref()) {
 
   if (my $pid = fork) {
       $dbh->do("UPDATE users SET current_batch = 0, date_sent = date_sent
                 WHERE id = $user_id
                   AND current_batch = 1"
       ) || die "$dbh->errstr\n";
    } else {
       die "Can't fork: $!" unless defined $pid;
       #... здесь может случиться и die, причем не по ошибке, а по моей
 просьбе
       exit;
     }
   }
   $sth->finish  || die "$dbh->errstr\n";
   # здесь где-то $cond может смениться, чтобы вышли из цикла...
 }
 
 $dbh->disconnect();
 
 Скрипт покоцанный, но все важное показано.
 
 1. А теперь вопросы: по поводу subj'а ничего странного нет - есть ли что-то
 не по правилам DBI?
 2. Может "MySQL: connection lost произойти" когда child сделает die?
 3. Как в случае использования fork() с DBI рaботать?
 
 --
 Юрий        wolf@obk.ru
 --- ifmail v.2.15dev5
  * Origin: OVK-Trade (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 dbh и fork()   Yuri A. Wolf   23 Jan 2002 09:54:22 
 Re: dbh и fork()   Artem Chuprina   23 Jan 2002 12:48:50 
 Re: dbh и fork()   Yuri A. Wolf   23 Jan 2002 15:12:44 
 Re: dbh и fork()   Andrey Sapozhnikov   23 Jan 2002 18:49:15 
 Re: dbh и fork()   Artem Chuprina   24 Jan 2002 13:36:32 
 Re: dbh и fork()   Sergey V. Leschenko   25 Jan 2002 00:27:45 
 Re: dbh и fork()   Artem Chuprina   25 Jan 2002 11:18:30 
 Re: dbh и fork()   Sergey V. Leschenko   27 Jan 2002 20:16:24 
Архивное /ru.perl/64592fd337c6.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional