Skip to main content

Generic stoppable thread

Project description

qThread provides an simplified and safe way to stop long running threads. Typical uses often look like this:

# Test / Usage of the stoppable thread
class MyThreadingClass(StoppableThread):
    def __init__(self, a):
        super(MyThreadingClass, self).__init__()
        self.a = a
        self.b = "World"
        self.delay = .5 # seconds

    def startup(self):
        # Overload the startup function
        print "My Thread Starting Up..."

    def cleanup(self):
        # Overload the cleanup function
        print "My Thread Is Shutting Down..."
        # Close files, ports, etc...
        time.sleep(4)
        print "Cleanup Complete!"

    def mainloop(self):
        # Some routine to be called over and over
        # ie: reading ports or sockets
        print self.a + " " + self.b

        # Throttling needs to be done here if the
        # primary function is not blocking
        time.sleep(self.delay)

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page