All using ForkManager. Children die and close their DB handles in order.
Quickly post:
foreach my $ln (@lines) {
$pm->start && next;
** child starts
my $dbh = $this->_child_db();
... code here
** child finishes with _close_child();
$this->_close_child();
$pm->finish
}
$pm->wait_all_children()
_child_db() {
if (!$this->{'_dbh-child')) {
print $$ . ": Creating Child DB Handle";
$this->{'_dbh-child'} = new DBI::Connect ......;
}
return $this->{'_dbh-child'};
}
_close_child() {
print $$ . ": Closing child DB Handle";
$this->{'_dbh-child'}->disconnect();
delete($this->{'_dbh-child'});
}
Very rough, please don't try to compile it. All my code is on an internal system not connected to the internet.
My code is all very verbose. Everything is working correctly and in order. All children to finish, total 6 processes max ever within top. Finish is always seen before a Start.
-- philip
We put the 'K' in kwality!
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|