Salman Toor wrote:
> What is the proper way of using multi threaded application within WebKit.
> 
> for example:
> 
> # define a class that subclasses Thread
> class showTime(threading.Thread):
> 
>   # define instance constructor
>   def __init__(self,interval,id):
>      self.w = interval
>      self.id = id
>      threading.Thread.__init__(self)  # we are required to this
> 
>   # define run method (body of the thread)
>   def run(self):
>      time.sleep(self.w)
>      print "thread", self.id, "done at", time.ctime(time.time())
>  
> how do i start the threads so that it can finish successfully and i
> can shutdown my server and can restart it.

Hi Salman,

here is a simple example servlet. The thread is started when the servlet 
is first called and stopped when the AppServer stops.

---------------------------------------------------------------

from ExamplePage import ExamplePage
from time import *

from threading import Thread, Event

class MyThread(Thread):

     def __init__(self, interval, id):
         Thread.__init__(self)
         self.interval = interval
         self.id = id
         self.time = None
         self.stop_event = Event()

     def run(self):
         while not self.stop_event.isSet():
             self.time = ctime(time())
             print "thread", self.id, "done at", self.time
             self.stop_event.wait(self.interval)

     def stop(self):
         print "thread", self.id, "shutdown"
         self.stop_event.set()
         self.join(1)

my_thread = MyThread(2, 4711)
from WebKit.AppServer import globalAppServer
globalAppServer.application().addShutDownHandler(my_thread.stop)
my_thread.start()

class ShowTime(ExamplePage):

     def writeContent(self):
         self.write('<h1>Thread Test</h1>')
         self.write('<h2>Last executed at: ', my_thread.time, '</h2>')


---------------------------------------------------------------

Hope that helps.

-- Christoph

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Webware-discuss mailing list
Webware-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/webware-discuss

Reply via email to