import redis
import threading
class Listener(threading.Thread):
def __init__(self, r, channel):
threading.Thread.__init__(self)
self.redis = r
self.pubsub = self.redis.pubsub()
self.pubsub.subscribe(channel)
def run(self):
for item in self.pubsub.listen():
# do stuff
pass
上記のコードで、スレッドを停止するにはどうすればよいですか?
以下に、私が望むものを示すサンプルコードを示します。
class Listener(threading.Thread):
def __init__(self, r, channel):
threading.Thread.__init__(self)
self.redis = r
self.pubsub = self.redis.pubsub()
self.pubsub.subscribe(channel)
self.stop = False
def run(self):
while not stop:
# get item from channel
したがって、属性 stop == True の場合、スレッドはループを終了して終了します。それは可能ですか?そうでない場合、代替手段は何ですか?