Alamofire: Request Retrier - Anzahl der Wiederholungen begrenzen

Erstellt am 6. Okt. 2016  ·  3Kommentare  ·  Quelle: Alamofire/Alamofire

Hallo,

Ich habe mit dem Anforderungs-Retrier gearbeitet, um erneut zu authentifizieren, wenn die Anforderung aufgrund eines abgelaufenen Tokens fehlschlägt.

Gibt es eine Möglichkeit, die Anzahl der Wiederholungsversuche zu begrenzen? Dies wäre im Falle eines Serverfehlers erforderlich, der den abgelaufenen Tokenfehler sendet, wenn dies nicht das Problem ist. Dort haben wir eine Endlosschleife.

Es kann andere Fälle geben, in denen dies erforderlich ist.

Ich habe diese Frage auf SO unbeantwortet gesehen, also denke ich / hoffe ich bin nicht der einzige, der dies braucht. Wenn Sie eine alternative Möglichkeit haben, lassen Sie es mich bitte wissen.

Vielen Dank,

question request retrier

Hilfreichster Kommentar

Hallo @Footjy ,

Es gibt viele Möglichkeiten, wie Sie damit umgehen können. Ich würde einfach anfangen und einen Scheck in Ihr RequestRetrier schreiben, mit dem Sie nicht mehr als 3 Aktualisierungen innerhalb eines Zeitraums von 10 Sekunden ausführen können. Wenn Sie dies tun, beenden Sie die Wiederholung der Anforderung.

Sobald Sie diese Prüfung durchgeführt haben, können Sie sie im Laufe der Zeit langsam ändern, um sie immer robuster zu machen. Wenn Sie einen Link zur SO-Frage posten, würde ich ihn auch gerne dort beantworten.

Ich habe auch nur geschoben bis PR # 1681 , die ein fügt retryCount Eigenschaft auf ein Request , die Sie erlauben würde , stoppen Retrying ein Request , nachdem es einmal oder zweimal versucht worden war. Diese Optionen sollten mehr als genug sein, um Sie zum Laufen zu bringen.

Wenn Sie andere Ideen haben, zögern Sie bitte nicht, diese zu posten. Dieses System ist brandneu, daher wissen wir nicht, wie jeder es verwenden wird.

Prost. 🍻

Alle 3 Kommentare

Hallo @Footjy ,

Es gibt viele Möglichkeiten, wie Sie damit umgehen können. Ich würde einfach anfangen und einen Scheck in Ihr RequestRetrier schreiben, mit dem Sie nicht mehr als 3 Aktualisierungen innerhalb eines Zeitraums von 10 Sekunden ausführen können. Wenn Sie dies tun, beenden Sie die Wiederholung der Anforderung.

Sobald Sie diese Prüfung durchgeführt haben, können Sie sie im Laufe der Zeit langsam ändern, um sie immer robuster zu machen. Wenn Sie einen Link zur SO-Frage posten, würde ich ihn auch gerne dort beantworten.

Ich habe auch nur geschoben bis PR # 1681 , die ein fügt retryCount Eigenschaft auf ein Request , die Sie erlauben würde , stoppen Retrying ein Request , nachdem es einmal oder zweimal versucht worden war. Diese Optionen sollten mehr als genug sein, um Sie zum Laufen zu bringen.

Wenn Sie andere Ideen haben, zögern Sie bitte nicht, diese zu posten. Dieses System ist brandneu, daher wissen wir nicht, wie jeder es verwenden wird.

Prost. 🍻

Hallo @cnoon ,

Danke für deine Antwort! Die jüngste Pull-Anfrage war genau das, was ich mir erhofft hatte. Dies ist der einfachste Weg, dies zu erreichen. Und ich hätte tatsächlich über einen Timer nachdenken können, um das zu tun.

Hier ist die SO-Frage . Ich lasse dich die Antwort posten :)

Prost.

Hallo cnoon,
Ich arbeite mit Request Retrier für die erneute Authentifizierung abgelaufener Token. Wenn das Token von der Methode "sollte" des Retrier-Delegaten abgelaufen ist, erhalte ich ein neues Token.

Aber nachdem ich ein neues Token erhalten habe, wird es im Delegaten beendet. Die Anfrage wird nicht fortgesetzt und ich erhalte keine Antwort. Bitte lassen Sie mich wissen, wo ich falsch liege.

Vielen Dank

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen