Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rend publication_watchdog plus résistant aux exceptions #6264

Merged

Conversation

philippemilink
Copy link
Member

Pour éviter que le service zds-watchdog entier ne plante lorsqu'une erreur survient dans la boucle qui traite chaque demande de publication, on place le contenu de la boucle dans un bloc try/except. De cette façon, les seules erreurs qui pourraientt faire planter le service sont celles qui apparaîtraient dans le bloc except.

QA

Surtout une revue de code, s'assurer que le watchdog continue à fonctionner dans des conditions normales.

@philippemilink philippemilink added the C-Back Concerne le back-end Django label Mar 20, 2022
@coveralls
Copy link

coveralls commented Mar 20, 2022

Coverage Status

Coverage decreased (-0.02%) to 87.201% when pulling c6233c2 on philippemilink:watchdog-handle-exceptions into e2c0775 on zestedesavoir:dev.

Copy link
Member

@Situphen Situphen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je pense qu'il serait plus lisible d'avoir un seul try avec plusieurs except comme ceci :

try:
    content = publication_event.published_object
    # ...
    publicator = PublicatorRegistry.get(publication_event.format_requested)
    publicator.publish(md_file_path, base_name)
except FailureDuringPublication:
    logger.exception("...")
    # ...
except Exception:
    logger.exception("...")
    # ...

Aussi, est-ce qu'utiliser logger.exception ne permettrait pas d'éviter d'utiliser logger.error avec e_type et e_value en paramètres ?

@philippemilink
Copy link
Member Author

Je pense qu'il serait plus lisible d'avoir un seul try avec plusieurs except comme ceci :

En effet, c'est plus clair.

Aussi, est-ce qu'utiliser logger.exception ne permettrait pas d'éviter d'utiliser logger.error avec e_type et e_value en paramètres ?

Je ne connaissais pas, et c'est bien ce dont a besoin ici, comme ça on les détails de l'exception et la backtrace dans les logs.

Situphen
Situphen previously approved these changes Mar 28, 2022
@philippemilink philippemilink enabled auto-merge (squash) March 28, 2022 20:41
@philippemilink philippemilink merged commit f8d2136 into zestedesavoir:dev Mar 28, 2022
@philippemilink philippemilink deleted the watchdog-handle-exceptions branch March 28, 2022 20:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-Back Concerne le back-end Django
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants