Próbuję dowiedzieć się, jak poprawnie zamknąć asynchroniczny strumień tweepy.jak poprawnie zamknąć strumień tweepy
Moduł przesyłania strumieniowego tweepy można znaleźć here.
zacznę strumień tak:
stream = Stream(auth, listener)
stream.filter(track=['keyword'], async=True)
Podczas zamykania aplikacji, staram się zamknąć strumienia tak proste, jak:
stream.disconnect()
Metoda ta wydaje się działać zgodnie z przeznaczeniem, ale wydaje mieć jeden problem: wątek strumienia jest nadal w środku pętli (oczekujące/obsługujące tweety) i nie jest zabijany aż do następnej pętli, więc gdy strumień otrzyma tweeta nawet po zamknięciu aplikacji, nadal próbuje wywołaj obiekt detektora (można to zobaczyć za pomocą prosta składnia wydruku w obiekcie słuchacza). Nie jestem pewien, czy to jest złe, czy może być po prostu ignorowane.
mam 2 pytania:
- Jest to najlepszy sposób, aby zamknąć strumienia lub należy przyjąć inne podejście?
- Czy wątek asynchroniczny nie powinien być tworzony jako wątek demona?
Dlaczego nie używać Twython?Jest to oficjalna biblioteka Pythona na Twitterze. –