On May 5, 2007, at 2:59 AM, Shannon -jj Behrens wrote:
> > On 5/4/07, Matt Billenstein <[EMAIL PROTECTED]> wrote: >> >> On Fri, May 04, 2007 at 05:27:42PM -0700, Shannon -jj Behrens wrote: >>> On 5/4/07, Matt <[EMAIL PROTECTED]> wrote: >>>> Hi, I have a pylons app which I want to spawn a long-running >>>> process >>>> from. While this process is running (might be an hour or so), I >>>> want >>>> the page that kicked off this process to just display status (maybe >>>> referesh ever 30 seconds or so)... Does anyone have some >>>> pointers on >>>> how this should be done or what packages I should be looking into? >>> >>> I've done this before, but not in Pylons. Spawning a long running >>> process or thread is fine. Watch out for Paste because I think Ian >>> put in some code to watch for runaway threads--it's probably fine. >>> Use a timer and AJAX to have the Web page poll the server to see if >>> the work is done. (You could use Comet, but polling is probably >>> fine. >>> Ignore this statement if you don't know what I'm talking >>> about.) In >>> the best case, you can use a progress bar on the page. Just work >>> your >>> way through it; I'm sure you'll be fine. >> >> Any recommendations on passing status between the worker thread >> and the >> controller when it's polling? I tried just using class variables, >> but >> they don't seem to get updated between the threads... > > How were you updating the class variable? ClassName.variable = "foo"? > If you do self.variable = "foo", you're shadowing the class variable. > By the way, naturally, watch out for race conditions. Another option > is to use the queue module and have the worker thread push messages > onto the queue, and the controller can read messages from the queue. > I tend to prefer message queues over explicit lock management. I've found this threadpool implementation useful for a similar task: http://tinyurl.com/yw6xc9 Alberto --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To post to this group, send email to pylons-discuss@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en -~----------~----~----~----~------~----~------~--~---