leighsharpe has asked for the wisdom of the Perl Monks concerning the following question:
The problem is that if I execute the LOAD DATA INFILE whilst there is nothing writing to MYFIFO, the server times out and the operation fails. I would much rather do something like this:my $dbh=DBI->connect("DBI:mysql:database=pings;host=$host;mysql_connec +t_timeout=10","$user","$password") or die "$!\n"; $sth=$dbh->prepare("LOAD DATA LOCAL INFILE 'MYFIFO' INTO TABLE $table +FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'") or print "$!\n".$ +dbh->{'mysql_error'}; $sth->execute() or print "$!\n".$dbh->{'mysql_error'}; $sth->finish() or print "$!\n".$dbh->{'mysql_error'}; $dbh->disconnect() or print "Trouble disconnecting! $!\n";
But I don't know how to keep an eye on that FIFO. It gets more complicated by the fact that I need to lock tables prior to writing, but I don't want to go locking tables until I know that I'm ready to write data to them.while (1) { if (fifo_is_ready()) { # Connect to database # LOAD DATA LOCAL INFILE 'MYFIFO' etc. etc. # Disconnect } else { sleep(2); } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Watching a named pipe
by cdarke (Prior) on Feb 26, 2009 at 09:39 UTC | |
|
Re: Watching a named pipe
by lostjimmy (Chaplain) on Feb 26, 2009 at 01:59 UTC | |
by educated_foo (Vicar) on Feb 26, 2009 at 03:48 UTC | |
|
Re: Watching a named pipe
by plobsing (Friar) on Feb 26, 2009 at 00:24 UTC | |
|
Re: Watching a named pipe
by zentara (Cardinal) on Feb 26, 2009 at 16:34 UTC |