|
21 | 21 |
|
22 | 22 | from MultiServer import Context, server, auto_shutdown, ServerCommandProcessor, ClientMessageProcessor, load_server_cert
|
23 | 23 | from Utils import restricted_loads, cache_argsless
|
24 |
| -from .locker import Locker |
25 | 24 | from .models import Command, GameDataPackage, Room, db
|
26 | 25 |
|
27 | 26 |
|
@@ -246,25 +245,24 @@ async def start_room(room_id):
|
246 | 245 | ctx.shutdown_task = asyncio.create_task(auto_shutdown(ctx, []))
|
247 | 246 | await ctx.shutdown_task
|
248 | 247 |
|
249 |
| - # ensure auto launch is on the same page in regard to room activity. |
250 |
| - with db_session: |
251 |
| - room: Room = Room.get(id=ctx.room_id) |
252 |
| - room.last_activity = datetime.datetime.utcnow() - datetime.timedelta(seconds=room.timeout + 60) |
253 |
| - |
254 | 248 | except (KeyboardInterrupt, SystemExit):
|
255 |
| - with db_session: |
256 |
| - room = Room.get(id=room_id) |
257 |
| - # ensure the Room does not spin up again on its own, minute of safety buffer |
258 |
| - room.last_activity = datetime.datetime.utcnow() - datetime.timedelta(minutes=1, seconds=room.timeout) |
| 249 | + pass |
259 | 250 | except Exception:
|
260 | 251 | with db_session:
|
261 | 252 | room = Room.get(id=room_id)
|
262 | 253 | room.last_port = -1
|
263 |
| - # ensure the Room does not spin up again on its own, minute of safety buffer |
264 |
| - room.last_activity = datetime.datetime.utcnow() - datetime.timedelta(minutes=1, seconds=room.timeout) |
265 | 254 | raise
|
266 | 255 | finally:
|
267 |
| - rooms_shutting_down.put(room_id) |
| 256 | + try: |
| 257 | + with (db_session): |
| 258 | + # ensure the Room does not spin up again on its own, minute of safety buffer |
| 259 | + room = Room.get(id=room_id) |
| 260 | + room.last_activity = datetime.datetime.utcnow() - \ |
| 261 | + datetime.timedelta(minutes=1, seconds=room.timeout) |
| 262 | + logging.info(f"Shutting down room {room_id} on {name}.") |
| 263 | + finally: |
| 264 | + await asyncio.sleep(5) |
| 265 | + rooms_shutting_down.put(room_id) |
268 | 266 |
|
269 | 267 | class Starter(threading.Thread):
|
270 | 268 | def run(self):
|
|
0 commit comments