Сервер Python отправляет несколько запросов API в TicketMaster, хотя у меня есть ограничитель скорости. Ошибка нарушения спайка ареста
Мой сервер отправляет несколько запросов API для одного и того же запроса. Вот мой код:
@SOCKETIO.on('retrieve_bookmarks')
@sleep_and_retry
@limits(calls=5, period=1)
def retrieve_bookmarks(data):
'''This function is for retrieving a
bookmark from the DB'''
print("Inside function")
socket_id = data
pair = ACTIVE_USER_SOCKET_PAIRS[socket_id]
user_id = pair['ID']
event_ids = []
event_details = []
bookmarked_events = DB.session.query(Bookmarks).filter_by(clientId=user_id)
for bookmark in bookmarked_events:
event_ids.append(bookmark.event_id)
redurl = 'https://app.ticketmaster.com/discovery/v2/events/'
for i_d in event_ids:
with RATE_LIMITER:
print("Inside loop")
redurl += i_d
redurl += '.json?apikey={}'.format(APIKEY)
req = requests.get(redurl)
jsontext = req.json()
event_details.append(jsontext)
redurl = 'https://app.ticketmaster.com/discovery/v2/events/'
SOCKETIO.emit('retrieve_bookmarks', event_details, broadcast=False, include_self=True)
Если я проверю консоль при запуске своего приложения, это показывает, что я получаю ошибку нескольких запросов случайным образом для одного идентификатора. Идентификатор, для которого я получаю ошибку, никогда не бывает согласованным. Однако я заметил, что с ограничением в 1 звонок в секунду я никогда не получаю никаких нарушений ареста всплеска. Что-то не так с моим кодом? RATE_LIMITER установлен на максимум 5 вызовов в секунду.