Итак, пользователь заметил странное поведение значка юбилея. Значок юбилея выдается через один день после того, как был выдан предыдущий значок юбилея, ровно через год. Не уверен, что это задумано.
4 лайка
Это баг, но я думаю, что это как раз тот случай, когда мы приветствуем pull-запросы. Наша логика работы такова:
- Раз в день мы ищем новых людей, которым можно выдать юбилейные значки.
- Мы рассматриваем только тех, кто не получал юбилейный значок в течение предыдущего года.
Проблема в том, что это выполняется раз в сутки в произвольное время, поэтому задача всегда запускается с задержкой: иногда на час, а иногда на 23 часа.
Учитывая, что значки выдаются раз в день, нам нужно изменить логику следующим образом:
- Найти кандидатов.
- Установить
created_atс правильным смещением вместо использованияend_date.
Исправление вполне выполнимо, но требует аккуратности.
2 лайка
Я открыл PR (мой первый!) по этому вопросу здесь: FIX: Ensure subsequent Anniversary badges are granted on a user's anniversary date by magni- · Pull Request #28979 · discourse/discourse · GitHub
2 лайка
