On Fri, Mar 12, 2010 at 9:36 AM, Reese <howel...@inkworkswell.com> wrote:

> On 12-Mar-10 11:31, Nilesh Govindarajan wrote:
>
>> On Fri, Mar 12, 2010 at 6:49 PM, Bruno - e-comBR <br...@e-combr.com.br>
>> wrote:
>>
>
>  It's causing a little throuble for me. When a PHP script generates a
>>> bigger
>>> report(taking about ten minutes or more), the user seems to be impatient.
>>> They're doing refreshs on the page. So, for each refresh apache is
>>> queuing a
>>> new script, and just begin running this when the queue is empty again.
>>>
>>> What do you suggest me?
>>>
>>> Thank you,
>>> Bruno Moreira Guedes
>>>
>>>
>> I don't use mod_php, so don't know about its behavior. But I recommend
>> you inform the users that the report can take upto ten minutes to
>> generate and to be patient. That's the only solution I see.
>>
>
> Else, if you can make the PHP script 'smart' in some way so that a
> popup or other visual indicator will give constant, visual feedback
> on the progress of the request. With a "Cancel" button that functions
> to kill the original request while blocking page refreshes. They can
> start over from scratch if they like.
>
> Reese
>
>
>
>
> ---------------------------------------------------------------------
> The official User-To-User support forum of the Apache HTTP Server Project.
> See <URL:http://httpd.apache.org/userslist.html> for more info.
> To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
>  "   from the digest: users-digest-unsubscr...@httpd.apache.org
> For additional commands, e-mail: users-h...@httpd.apache.org
>
>
Is there any way to cache the report?

Maybe for that specific page (or the reports pages in general) you should
institute a process whereby the webpage doesn't run the report itself but
acts an an interface to a CLI task that generates the report.  When you hit
the webpage, it attempts to obtain a "report lock", at which point the
report begins to run, once the report is generated the lock can be released,
and the web page can retrieve and report the results.  The lock can be
implemented any number of ways, I've done it in the past by simply touching
and then deleting a file in the /tmp folder.

To eventually ensure the user sees the report when it's done being
generated, you could do some fancy Keep-alive with the http request, or just
have some javascript on the page that automatically reloads it, and upon
reload the script will check to see if there's a report built for that user,
otherwise it checks to see if there's a lock.  If there's a lock, it stops
and waits to try again soon.  If there is no lock, it starts a new report.

Just some thoughts! Good luck with your problem, I don't think it's really
an apache problem.

Reply via email to