Holen Sie sich 504 Gateway-Auszeiten, wenn Sie Person-Events API anrufen
Posted: 24 Aug 2025, 22:54
Wir haben die Person-Event-API angerufen, um Ereignisdaten zu erhalten und nach einigen Anfragen "504 Gateway Time-Out" -Fehler zu erhalten. Setzen Sie 5000 "Offset" pro Anfrage, um in den 24 Stunden vollständige Ereignisse zu erhalten. Der Job dauerte normalerweise weniger als 30 Minuten, aber nach 8/12 stellten wir fest, dass es über 10 Stunden (20 Stunden in einem der Tage) dauerte, um den Job zu erledigen. Es stört unsere nachgeschalteten Jobausführungen. < /P>
Wir haben die Fehlermeldung als Antwort gefunden. Es ist der Nebenfehler des Servers, der wahrscheinlich durch überwältigendes Volumen oder Drossel verursacht wird. Und können keine Banno -Ereignisdaten erhalten. Es begann dieses Problem in der vergangenen Woche zu haben. Beispielcode wird im Screenshot bereitgestellt. Fehlermeldung "504 Gateway Time-Out" in der Antwort.
Beispielanforderungscode
Parse JSON fehlgeschlagen wegen 504 -Fehler
Erwarten Sie, dass Banno -Ereignisdaten aus der Antwort abgerufen werden, aber fehlgeschlagen.
Wir haben die Fehlermeldung als Antwort gefunden. Es ist der Nebenfehler des Servers, der wahrscheinlich durch überwältigendes Volumen oder Drossel verursacht wird. Und können keine Banno -Ereignisdaten erhalten. Es begann dieses Problem in der vergangenen Woche zu haben. Beispielcode wird im Screenshot bereitgestellt. Fehlermeldung "504 Gateway Time-Out" in der Antwort.
Code: Select all
while True:
sleep(5) # add waiting time to avoid get token error
access_token = get_access_token()
decoded = jwt.decode(access_token, options={"verify_signature": False})
end_point = f'/a/history/api/v0/institutions/{decoded["institutionId"]}/person-events'
print(f'pulling data, from: {from_datetime}, offset: {tot_cnt}')
resp = requests.get(base_url + end_point,
headers = {'Authorization': f"Bearer {access_token}"},
params = {'to': to_datetime,
'from': from_datetime,
'offset': tot_cnt,
'count': BANNOAPI_MAX_BATCH_SIZE})
try:
events = json.loads(resp.text)
except:
print(f'error when loading json, from: {from_datetime}, to: {to_datetime}, will retry')
sleep(60) # add extra waiting time
continue
if not events:
break
tot_cnt += len(events) # offset count
start_dt = events[-1]['date']
end_dt = events[0]['date']
start_dt_2 = dateutil.parser.parse(start_dt).strftime('%Y-%m-%dT%H%M%S')
end_dt_2 = dateutil.parser.parse(end_dt).strftime('%Y-%m-%dT%H%M%S')
pd.to_pickle(events, f'./{start_dt_2}_to_{end_dt_2}.pkl')
Parse JSON fehlgeschlagen wegen 504 -Fehler
Erwarten Sie, dass Banno -Ereignisdaten aus der Antwort abgerufen werden, aber fehlgeschlagen.