Its a bug, but I think this is one of those ones that is PR welcome, our design is:
- Once a day we go hunting for new people to give anniversary badges to
- We only consider people who did not get an anniversary badge in the previous 1 year.
Trouble is … this only runs once a day at an arbitrary time, this means the job always runs late, sometimes 1 hour late, some times 23 hours late.
Given we are only granting badges once a day we would need to change our logic to:
- Fish for candidates
- set the
created_at:
at the correct offset instead of usingend_date
Not an impossible fix by any means, but fiddly.