On Thu, Oct 02, 2003 at 01:44:37AM -0000, PerlDiscuss - Perl Newsgroups and mailing lists wrote: > Hi, > > I have a CGI script that takes some time to finish searching the DB. In > the meanwhile, how do I show that the job is being processed? > > I tried just simple printing the same, but it wouldnt show up until the > search is over. I tried using threads with the same result.
First, let me say I've never done this. That aside, there are a couple
ways I've heard of to do it. One is using fork(). The other, is just a
quick kludge which might work if security isn't an issue. That is to
put the DB query into a seperate .pl and execute it in the background
via a system call something like system("DB_Job.pl arg1 arg2... \&").
Have it (DB_Job.pl) dump the data into a temp file using something like
Data::Dumper. From a loop in your main script you would check the contents
of the temp file every second or so and print a generic status message
(ie. "searching db...") until the job is complete, when it then prints the
final search results.
Comments are welcome from more experienced parties.
--
=====================
Shaun Fryer
=====================
http://sourcery.ca/
ph: 905-529-0591
=====================
Science is like sex: occasionally something useful
comes out of it, but that's not why we do it.
-: Richard Feynmann
pgp00000.pgp
Description: PGP signature
