Server shutdowns triggered by a proxy server using HTTPService - is this a bad idea?

We’ve noticed on several occasions on RH that the shutdown button takes a while to terminate all game instances, and in a lot of cases, doesn’t always terminate all game instances. Has anyone else experienced this? We can hit the shut down button and some servers take 10+ minutes to shut downs, and others simply remain active.

We want to make sure that first of all of our servers shut down, and also that they shut down within a reasonable time, so I’m thinking of implementing a solution using our backend.

For example, every minute we would check for a shutdown action in our backend with HttpService, and if its set, then Kick all the players and prevent them from rejoining that particular server. Anyone else doing something similar, or can anyone think of potential consequences (ie: is a bad idea to terminate all game instances at once if there are 2000+ running?)

Ice

The only problem I see is if you upload any data to your own server and there’s say 20 players per server and you had it that every time someone left, it uploaded something. That would be 20x2000 requests instantaneously to your server.

Not if an external controller managed the shutdown process, adding servers to a queue rather than telling them all to shut down at once.

May be slower than the current solution though, you would have to test and compare.

Yeah. I was basing what I said on the possibility that all servers shut down at the same time.

Nah, the traffic on the server won’t be an issue, typically during shutdowns we receive roughly 50,000 requests within a minute, which all of our containers running our API application can handle. Setting up some sort of queuing using the JobIds might not be a bad idea, to be extra safe. Thx guys!

Out of curiosity, how many servers do you have that process these requests and what are their specs? What provider do you use and what load balancer?

Try looking at @Merely 's Soft Shutdown System. It uses the shutdown button on roblox and it sends all of your players back into new servers. Using https request to shut down will cause a lot of requests if you use a external server.

Lots :3. All behind a network load balancer all running through AWS. We have autoscaling implemented on both the container level and the ec2 instance level. Each of the containers communicates with a central RDS instance.