[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.python

Keep a python script running after browser window closed

sophie

3/7/2008 4:29:00 PM

Hi,

I have a cgi script that performs a very long computation that can
take several hours to complete. Is there any smart way that I can keep
this script running until it is finished (after the user has closed
the browser) and email them with the results. The email bit isn't the
problem, I just don't know how to keep the code running in the
background. I'm sure there is a smart way to do this...

Thanks!
3 Answers

Mike Driscoll

3/7/2008 4:34:00 PM

0

On Mar 7, 10:28 am, sophie_newbie <paulgeele...@gmail.com> wrote:
> Hi,
>
> I have a cgi script that performs a very long computation that can
> take several hours to complete. Is there any smart way that I can keep
> this script running until it is finished (after the user has closed
> the browser) and email them with the results. The email bit isn't the
> problem, I just don't know how to keep the code running in the
> background. I'm sure there is a smart way to do this...
>
> Thanks!

You might have your cgi script use the subprocess module to open a
second script that does the long-running process.

Mike

sophie

3/10/2008 5:42:00 PM

0

On Mar 7, 4:33 pm, Mike Driscoll <kyoso...@gmail.com> wrote:
> On Mar 7, 10:28 am, sophie_newbie <paulgeele...@gmail.com> wrote:
>
> > Hi,
>
> > I have a cgi script that performs a very long computation that can
> > take several hours to complete. Is there any smart way that I can keep
> > this script running until it is finished (after the user has closed
> > the browser) and email them with the results. The email bit isn't the
> > problem, I just don't know how to keep the code running in the
> > background. I'm sure there is a smart way to do this...
>
> > Thanks!
>
> You might have your cgi script use the subprocess module to open a
> second script that does the long-running process.
>
> Mike

Ya it looks like:

import subprocess

# spawn subprocess
subprocess.Popen(["python", "spawn.py"])

Should do this job, where spawn.py is the script to do the job.
Thanks.

sjdevnull@yahoo.com

3/10/2008 8:44:00 PM

0

On Mar 10, 1:42 pm, sophie_newbie <paulgeele...@gmail.com> wrote:
> On Mar 7, 4:33 pm, Mike Driscoll <kyoso...@gmail.com> wrote:
>
>
>
> > On Mar 7, 10:28 am, sophie_newbie <paulgeele...@gmail.com> wrote:
>
> > > Hi,
>
> > > I have a cgi script that performs a very long computation that can
> > > take several hours to complete. Is there any smart way that I can keep
> > > this script running until it is finished (after the user has closed
> > > the browser) and email them with the results. The email bit isn't the
> > > problem, I just don't know how to keep the code running in the
> > > background. I'm sure there is a smart way to do this...
>
> > > Thanks!
>
> > You might have your cgi script use the subprocess module to open a
> > second script that does the long-running process.
>
> > Mike
>
> Ya it looks like:
>
> import subprocess
>
> # spawn subprocess
> subprocess.Popen(["python", "spawn.py"])
>
> Should do this job, where spawn.py is the script to do the job.
> Thanks.

In real life, you probably want spawn.py to do a full daemonize. That
means fork/setsid/fork/chdir appropriately/deal with stdin/stdout/
umask, or however you set up a service on Windows.