We developed something that did something similar here. The import process spawned a daemon which imported the data. However, in our system only one import could be done at a time (that was actually part of the spec, not bad programming!), so spawning one daemon per import wasn't such a bad idea.
If you need to, you could build a persistent daemon that occasionally checked for new data to import (say, once every 30 seconds) and would spawn a separate thread for each bit of data to be imported. Of course, you'll have to develop a good workflow so that either your user is notified on that page when the import is completed (possibly through some ajax-y interface either by polling or using a Comet system) or, the easy way out, just provide a page that provides a status, where your user can refresh as they like. All depends on your situation. Hope that helps, Christopher Allan Webber "Daryl Spitzer" <[EMAIL PROTECTED]> writes: > I have a view that takes approximately 5 minutes (plus or minus 4 or > so) to put together data (culled from other sources, such as our SCM > and a web service that wraps our bug database) to be passed on to a > template. Some form of caching may (mostly) solve this problem, but > I'm worried about two things: > > 1) The unlucky user who is the first to go to this page after the > cached data has expired will have a long wait. > > 2) What happens when other users go to other pages, or this page, > while the view is gathering data? > > I don't have any experience deploying Django projects (yet) nor do I > have any with Apache. But from what I've read so far, I'm under the > impression that Apache can be configured to run multiple processes, > each with its own invocation of Django...right? (These processes > will, of course, be unaware of each other unless I take steps to > synchronize them.) > > I think the proper solution is to have a separate process periodically > put together the data that my view does now, and serialize (pickle) it > or put it in the database. Then my view will just read and display the > most-recently generated data. > > Do you agree? Do you have any advice? Should I run this separate > process from within Django (somehow), or as a cronjob? > > -- > Daryl Spitzer > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-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/django-users?hl=en -~----------~----~----~----~------~----~------~--~---