Certain badges d'anniversaire sont attribués un jour et un an après le dernier badge d'anniversaire

Un utilisateur a remarqué que le comportement de l’insigne d’anniversaire est étrange. Il décerne l’insigne d’anniversaire un jour après la dernière attribution de l’insigne d’anniversaire. Je ne suis pas sûr si c’est intentionnel.

4 « J'aime »

C’est un bug, mais je pense que c’est l’un de ceux pour lesquels une PR est la bienvenue. Notre conception est la suivante :

  1. Une fois par jour, nous partons à la recherche de nouvelles personnes pour leur attribuer des badges d’anniversaire.
  2. Nous ne considérons que les personnes qui n’ont pas reçu de badge d’anniversaire au cours de l’année précédente.

Le problème est que… cela ne s’exécute qu’une fois par jour à une heure arbitraire, ce qui signifie que le travail s’exécute toujours en retard, parfois avec 1 heure de retard, parfois avec 23 heures de retard.

Étant donné que nous n’attribuons les badges qu’une fois par jour, nous devrions modifier notre logique pour :

  1. Rechercher des candidats.
  2. Définir created_at: au bon décalage au lieu d’utiliser end_date.

Ce n’est pas une correction impossible, mais c’est délicat.

2 « J'aime »

J’ai ouvert une PR (ma première !) pour cela ici : FIX: Ensure subsequent Anniversary badges are granted on a user's anniversary date by magni- · Pull Request #28979 · discourse/discourse · GitHub

2 « J'aime »