I have a program that I would like to fire off some number of child processes (each a perl script with a separate argument that the parent supplies) to do a somewhat time consuming thing. Right now I want it to fire off 30 sub-processes, at some point in the future that number will likely grow to about 150. I would like all the child processes to be started at about the same time, since the thing they are doing - building reports on different fairly busy and occasionally slow to respond servers, and putting those reports in a database - is somewhat time consuming but not bandwidth or CPU consuming. It would be fine if it died after the children were fired off. The script currently serially builds reports and it is slow and can be unreliable if a remote host decides to quit cooperating or kill its session, which is why I am thinking this approach would be great. As I understand them, system() and backticks wait for the process to finish (even if you use &), while fork(), and exec() seem to only replace a single running process with another. Is what I want to do possible with Perl? If so how?
-
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.
|