I am using symfony to develop a web interface which runs certain jobs
(deploying sites to a shared host, updating deployed sites, etc.)

The trouble is that these jobs can take up to 30 minutes to run, so I
am naturally encountering timeout problems, not to mention what
happens if the user quits the browser, or the HTTP connection closes.

Currently I am using a simple symfony action which performs the job
and sends output to the browser when done. I think what I need to do,
is spawn a new process which outlives the web request. This will avoid
timeouts because the web request will complete almost immediately, but
the spawned process will continue to run the job up to 30 minutes.
Ideally, the spawned process would also update a database with the
status of the job as it runs. This would enable me to display progress
to the user, perhaps using Ajax to periodically poll the database,
even if the user quit the browser and then returned to my web
application. The web application could use the database to inform the
user how much of the job had been completed, and perhaps use the PID
to check that it was still running.

Does anyone have any input? Is this a viable solution? Are there any
facilities for this in symfony? How do I spawn a process which
outlives the web request, but is able to communicate with subsequent
web requests using the database?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to