Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Retry on http502 error during OWSlib request

Ouverte
#386 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
40/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
python
Domaine
api

Piste de recherche

Commencez par GeoHealthCheck/probe.py et GeoHealthCheck/util.py, en particulier create_requests_retry_session(), puis comparez les points d’entrée get_metadata dans GeoHealthCheck/plugins/probe/wfs.py, wms.py et les autres probes. Vérifiez comment la requête WebFeatureService() de OWSlib est effectuée et déterminez le comportement de retry nécessaire pour les réponses HTTP 502. Le travail est terminé lorsque les requêtes de métadonnées concernées sont réessayées de manière fiable sans perturber les erreurs normales.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

enhancement

This issue is related to issue #366.

Is your feature request related to a problem? Please describe.
During a stress test of GHC (lots of resources with high frequency), I am getting mysterious http502 errors during WebFeatureService request in the get_metadata function inside wfs.py, wms.py, etc. These errors can be avoided by retrying requests.

Describe the solution you'd like
Currently, in probe.py there is already something in place for this using the create_requests_retry_session() function in util.py. The same principle could be applied to the request that is done in get_metadata functions of each probe (wfs.py, wms.py, etc.).
wfs.py

This request however uses the WebFeatureService() function from OWSlib, so the best solution in my opinion would be to use the create_requests_retry_session() in OWSlib. Maybe other OWSlib users have also seen this http502 error? This fix might improve OWSlib for other users as well.

Describe alternatives you've considered
An alternative is a simple loop with an exception clause which retries the WebFeatureService() request up to 3 times:

    def get_metadata(self, resource, version='1.1.0', retries=3):
        """
        Get metadata, specific per Resource type.
        :param resource:
        :param version:
        :return: Metadata object
        request_headers = self.get_request_headers()
        """
        for i in range(retries):
            try:
                return WebFeatureService(
                    resource.url,
                    version=version,
                    headers=request_headers)
            except:
                continue
        
        raise Exception(f'Get Metadata Request Exceeded {retries} Retries')
Langage dominant
Python
Étoiles
92
Forks
75
Merge moyen
17 h 33 min
PR mergées (30 j)
1

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de geopython/GeoHealthCheck

Toutes les issues de geopython/GeoHealthCheck

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.