Я пытаюсь транслировать живые твиты со списком пользователей.Когда я тестировал код посредством потоковой передачи своей собственной учетной записи Twitter, я заметил значительную задержку ~ 5 секунд для получения стримером моего твита, тогда как уведомление в приложении Twitter происходит практически мгновенно.Является ли эта задержка неотъемлемым ограничением для API?
Мой код очень прост и просто печатает твит, когда его получает.
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
import json
import credentials
import datetime as dt
class Authenticator():
def authenticate_twitter_app(self):
auth = OAuthHandler(credentials.CONSUMER_KEY, credentials.CONSUMER_SECRET)
auth.set_access_token(credentials.ACCESS_TOKEN, credentials.ACCESS_TOKEN_SECRET)
return auth
class TwitterStreamer():
def __init__(self):
self.auth = Authenticator().authenticate_twitter_app()
def stream_tweets(self, users):
listener = Listener(users)
stream = Stream(self.auth, listener)
stream.filter(follow=users)
class Listener(StreamListener):
def __init__(self, users):
self.users = users
def on_data(self, data):
try:
print(dt.datetime.now())
data = json.loads(data)
print(data['created_at'])
except Exception as e:
print("Error:", e)
return True
def on_error(self, status):
if status == 420:
return False
print(status)
users = ['nnnnnnnn']
twitter_streamer = TwitterStreamer()
twitter_streamer.stream_tweets(users)