そのため、サードパーティのエンドポイントで一時的に利用可能なファイルを監視するアプリケーションにいくつかのスレッドがあります。人生の目的を 1 日以内に果たし、その後終了してもらいたいのです。それを行う最善の方法は何ですか?
S/O には、何らかの機能 (TCP が接続をハングアップさせるなど) でタイムアウトになった場合にスレッドを終了させることについて多くの質問がありますが、私の目標は、実行する機能とは無関係にスレッドに寿命を与えることです。これまでに考えたことの簡単なデモを作成しました。
class Task(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.life = datetime.utcnow() + timedelta(seconds=60)
def run(self):
while True:
if datetime.utcnow() < self.life:
#do stuff that i do
print "hi"
time.sleep(5)
else:
break
t = Task()
t.start()
これはうまくいきますが、私はこれについて愚かな方法で考えていますか? それを処理するより良い方法はありますか?