非同期の tweepy ストリームを適切に閉じる方法を見つけようとしています。
tweepy ストリーミング モジュールは、ここにあります。
次のようにストリームを開始します。
stream = Stream(auth, listener)
stream.filter(track=['keyword'], async=True)
アプリケーションを閉じるときは、次のように簡単にストリームを閉じようとします:
stream.disconnect()
このメソッドは意図したとおりに動作するように見えますが、1 つの問題があるようです: ストリーム スレッドはまだループの途中 (ツイートの待機/処理) にあり、次のループまで強制終了されません。アプリは終了しましたが、引き続きリスナー オブジェクトを呼び出そうとします (これは、リスナー オブジェクトの単純な出力構文で確認できます)。これが悪いことなのか、単に無視できるのかはわかりません。
2 つの質問があります。
- これがストリームを閉じる最善の方法ですか、それとも別のアプローチを取る必要がありますか?
- 非同期スレッドをデーモン スレッドとして作成するべきではありませんか?