Ich habe ein Programm, welches aufgrund einer Paramtertabelle in einer Datenbank verschiedene Threads startet (Beispielhaft unten vereinfacht dargestellt). Daneben gibt es noch ein Web-Gui (ebenfalls in einem eigenen Thread), welches die Konfiguration der Parametertabelle zulässt.
Nun möchte ich, wenn über das Webgui ein Eintrag in der Tabelle geändert wird, der enstprechende Thread neu gestartet wird. Irgendwie müsste ja dann der entsprechende laufende Thread beendet und neu gestartet werden, aber wie dies vom Hauptprogramm aus bewerkstelligen?
Vielen dank für Infos
Dani
Code: Alles auswählen
import threading
import time
# [ID, Programm, Paramter]
db = [[1, 1, 50], [2, 2, 20]]
class TestThread1 ( threading.Thread ):
def __init__ ( self, tsleep ):
threading.Thread.__init__( self )
self.tsleep = tsleep
def run ( self ):
i = 1
while 1:
time.sleep(self.tsleep)
print "Thread Programm 1: i = %s" % (i)
i = i + 1
class TestThread2 ( threading.Thread ):
def __init__ ( self, tsleep ):
threading.Thread.__init__( self )
self.tsleep = tsleep
def run ( self ):
i = 1
while 1:
time.sleep(self.tsleep)
print "Thread Programm 2: i = %s" % (i)
i = i + 1
Threads = []
for x in db:
if x[1] == 1:
Threads.append ( TestThread1(x[2]) )
elif x[1] == 2:
Threads.append ( TestThread2(x[2]) )
# Threads starten
for t in Threads:
t.start()