Projet

Général

Profil

Development #36077

retenter la récuperation des données depuis wcs en cas de timeout

Ajouté par Serghei Mihai il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
12 septembre 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Au lieu de passer au formdef suivant lors de:

2019-09-12 15:42:40,010 INFO feed formdef inscription-enfant-restauration-scolaire-alae

2019-09-12 15:43:31,467 ERROR failed to retrieve formdef inscription-enfant-restauration-scolaire-alae, GET response is not 200: content=<html><body><h1>504 Gateway Time-out</h1>
The server didn't respond in time.
</body></html>

 status_code=504 url=https://traitement-demarches.arles.fr/api/forms/inscription-enfant-restauration-scolaire-alae/list?anonymise&full=on&offset=0&limit=1000&orig=bijoe-demarches.arles.fr&algo=sha256&timestamp=2019-09-12T13%3A42%3A41Z&nonce=a863affadced3da87979fed6e5f5ade0&signature=veTwBXqYmyHkd4CEgvuMaXpIrOrRuq5dV0NUHrX5%2Bms%3D
2019-09-12 15:43:31,606 INFO feed formdef j-inscris-mon-enfant-a-l-ecole
2019-09-12 15:43:47,900 INFO feed formdef inscription-enfant-garderie-etude-ecole

on pourrait retenter la récupération du batch, une fois ou deux.


Fichiers

Révisions associées

Révision 8e60ac10 (diff)
Ajouté par Frédéric Péters il y a plus de 4 ans

misc: reduce default batch size to 500 items (#36077)

Historique

#1

Mis à jour par Thomas Noël il y a plus de 4 ans

Ca se passe dans wcs_olap/wcs_api.py :

        try:
            response = requests.get(signed_url, verify=self.verify)
        except requests.RequestException as e:
            raise WcsApiError('GET request failed', url=signed_url, exception=e)
        else:
            if not response.ok:
                ...

Selon moi, on pourrait retenter le requests.get 3 fois si response.status_code est 502 (wcs coupé), 503 (maintenance) ou 504 (saturation) ; avec 5 secondes d'attente entre chaque tentative.

#2

Mis à jour par Frédéric Péters il y a plus de 4 ans

Je ne suis pas trop pour l'idée de se promener sur la corde du timeout et se dire qu'à force on ne chutera pas; dans le ticket qui n'est pas lié il me semble avoir vu passé que la taille du batch de récupération avait été réduit, je préfère ça, et ça me va de diminuer partout.

Par ailleurs et plus compliqué sans doute, faire en sorte de rester sur les anciennes données si les nouvelles ne peuvent pas être récupérées.

#3

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Frédéric Péters a écrit :

Je ne suis pas trop pour l'idée de se promener sur la corde du timeout et se dire qu'à force on ne chutera pas; dans le ticket qui n'est pas lié il me semble avoir vu passé que la taille du batch de récupération avait été réduit, je préfère ça, et ça me va de diminuer partout.

Les timeout venaient au début des formulaires avec un historique trop long, depuis qu'on ne log plus les statuts qui bouclent sur eux même ça a bien amélioré les choses, mais des batchs de 1000 oui ça semble un peu gros ici (je n'ai pas d'idée du pourquoi). Tout à fait d'accord pour baisser ça à 100 uniformément.

Par ailleurs et plus compliqué sans doute, faire en sorte de rester sur les anciennes données si les nouvelles ne peuvent pas être récupérées.

Le plus simple dans ce cas c'est de ne pas intercepter les erreurs WcsApiError sur la récupération d'un formdef et de foirer tout l'import, dans ce cas le schéma temporaire ne sera pas renommé et les données existante seront conservées; tenter de conserver uniquement les données du formulaire concerné sera trop compliqué.

#4

Mis à jour par Frédéric Péters il y a plus de 4 ans

Tout à fait d'accord pour baisser ça à 100 uniformément.

Descendons progressivement ? Patch pour commencer en réduisant de 1000 à 500.

#5

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

  • Statut changé de Solution proposée à Solution validée

Ok.

#6

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 8e60ac10d1aa1ed6e44910ece0257ecd41eeb718
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Sun Sep 15 10:24:59 2019 +0200

    misc: reduce default batch size to 500 items (#36077)
#7

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF