<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Michael,<br>
I don't know how much control you have over the webserver, but have you
looked at the PCNTL extension? I've played around with it a while ago,
and it works very nicely. I've only used it in a LAMP environment, but
it should do the same in a WAMP environment.<br>
Rene<br>
<br>
Michael J. Forte wrote:
<blockquote cite="mid:49F6830F.6010001@hotmail.com" type="cite"><font
 size="-1"><font face="Verdana">Hi experienced and talented
community of which I have been trolling for a few years!<br>
  <br>
I have a question for all of you and I hope this makes sense. <br>
  <br>
First, the background. I am coding a PHP Web application that has to
call a external program, however, because only one instance of the
program can be ran at a time I need to implement a queue. In addition,
it is important the users need to not wait (keep the browser open) for
their job to process. The script will send them an e-mail with a link
after their job completes. This means I need something to persistently
run whenever there is something in the queue. In summary: front end
script calls secondary child which runs until queue is empty by calling
external program.<br>
  <br>
My problem is, I cannot figure out how to properly fork under Windows,
allowing the parent script to run to completion, and not hang the
browser waiting for the child to complete. I am at the point where I
can spawn the child and it will run even when the parent browser is
closed but will not release the parent script until it completes. I
have tried exec(), system(), shell_exec(), popen(), and a COM call
(which I might have done wrong). Each of those called php -f
childScript.php.<br>
  <br>
I thought about a few other alternatives:<br>
  <br>
1. Use a scheduled task to check for a queue at a set interval. This is
the least desired solution as it could cause unwanted delay.<br>
2. Write a PHP daemon/Win32 service to monitor a queue of which could
be queried and started if needed by parent script and it would run
until the queue is empty at which time it would shutdown.<br>
3. Write a Perl script to be called by the parent which would fork and
call the secondary PHP script, subsequently terminating and releasing
the parent PHP script.<br>
  <br>
In summary:<br>
  <br>
- WAMP environment, cannot use Linux as external program is Windows
only (BUMMER!)<br>
- Need a queue to handle calls to an external program, currently stored
in a flat file<br>
- Parent script needs to fork to a child script which can run
independent of the parent until queue is empty<br>
- Parent script needs to be able to complete prior to child completing<br>
- Because of time required to run a job and because of the potential
for many users, users need to be able to submit'n'run.<br>
  <br>
Do any of you PHP gods (and goddesses!) have any thoughts on how to
fork under Windows, how to handle this situation, or alternatives?
Should I be using some other language? Perl, AJAX, other?<br>
  <br>
Google (or my search string) was less than helpful.<br>
  <br>
  </font></font>
  <div class="moz-signature">-- <br>
  <span
 style="color: rgb(0, 0, 0); font-family: Verdana,Arial,Helvetica,sans-serif;">
  <span style="font-size: 10px;"> Thank you,<br>
  <span style="font-weight: bold;">Michael J. Forte</span> </span> <br>
  <span style="font-size: 9px;"> Web Designer, WR Web Designs<br>
Webmaster, <a moz-do-not-send="true"
 href="http://www.townoflafayette.com">Town of LaFayette</a><br>
Software Engineer, <a moz-do-not-send="true" href="http://www.ibm.com">IBM</a>
  <br>
  <br>
Education: <a moz-do-not-send="true" href="http://www.clarkson.edu">Clarkson
University</a>
Alum (2005) :: <a moz-do-not-send="true"
 href="http://www.within-reason.com/resume/Michael_Forte_resume.pdf">Resume</a>
  <br>
E-mail: <a moz-do-not-send="true"
 href="mailto:michaelforte@hotmail.com">michaelforte@hotmail.com</a>
  <br>
  <br>
"Often those who work the hardest are the luckiest..." </span>
  </span></div>
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
New York PHP User Group Community Talk Mailing List
<a class="moz-txt-link-freetext" href="http://lists.nyphp.org/mailman/listinfo/talk">http://lists.nyphp.org/mailman/listinfo/talk</a>

<a class="moz-txt-link-freetext" href="http://www.nyphp.org/show_participation.php">http://www.nyphp.org/show_participation.php</a></pre>
</blockquote>
</body>
</html>