This is something the paste users may be interested in, so I'm CC that
list. IMO that's an awful lot of work for such a simple feature.

On Tue, May 5, 2009 at 2:53 PM, Bill5107 <[email protected]> wrote:
>
> For my next attempt, I dug in to find out how to terminate the paster
> server via Ctrl-C. Turns out there is a server flag to inidcate
> terminating the server, the trick is how to get access to it. I
> couldn't figure anything reasonable out so this is how I did it in the
> end:
>
> In my setup.py I made my own "paste.server_runner":
> [paste.server_runner]
> my_http = MyProj.lib.httpserver:server_runner
>
> Then I wrote a replacement for the
> ThreadPoolMixIn.process_request_in_thread so that I could set the
> Paster shutdown flag if my TG2 app requested a shutdown. Then my
> server_runner just needs to ensure my repalcement function is
> installed before calling the paster-provideed server_runner. (my
> process request replacement of course calls the original version as
> well, it only sets the self.running state to false if my app requested
> it)
>
> i.e. something like this:
>
> from paste.httpserver import server_runner as original_server_runner
>
> my_app_running = True
> original_process = None
>
> def replacement_for_process_request_in_thread(self, request,
> client_address):
>  original_process(self, request, client_address)
>  self.running &= my_app_running
>
> def server_runner(*args, **kwargs):
>  if original_process is None:
>    original_process = ThreadPoolMixIn.process_request_in_thread
>   ThreadPoolMixIn.process_request_in_thread =
> replacement_for_process_request_in_thread
>  return origianl_server_runner(*args, **kwargs)
>
> Not very elegant but it seemed to do what I wanted in the moment. I
> suppose this approach really becomes more of a Paster question and of
> course only deals with the thread-pooled server, not to mention relies
> on a module-level data item.
>
> Still looking for better solutions if anyone has them :-)
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears Trunk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/turbogears-trunk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to