At scale for multi-users, what is the proper way to implement timer updates?
I'm making a game where Users have buildings to upgrade which involve timers (Yes I know there are plenty of questions related to front-end: back-end this is not the same)
Every building exists in a table, with a completed field for a timestamp when we level up a building. I'm curious what the most common methods are to update the database when the timer runs out.
Many articles on stack exchange talk about setting up Cron jobs or having a game loop to poll against all stored timers. Still, I don't see those solutions scaling in a game with ~1000+ users nor useful in a browser-based Nodejs game relying on event updates over a game loop.
One solution I thought looked interesting was using RabbitMQ timed queues, so AMQP pushes a MySQL update at the scheduled time, but it sort of feels like a roundabout 'hack' of solving the problem compared to a more traditional method.