Обработка тысяч событий из запланированных заданий для игры
Для начала, я просто делаю этот проект в качестве обучающего опыта, который может быть использован в игре позже. Я пытался понять, как это будет сделано, если я захочу внедрить это в игру. Итак, позвольте мне дать вам senerio за то, о чем я говорю.
Случай использования:
В игре около 1000-10 000 игроков, которые создают события, которые должны обрабатываться игровым сервером. Например, скажем, это игра, в которой у каждого игрока есть город или деревня. Игрок хочет атаковать другого игрока, но есть дистанция перемещения, поэтому игрок 1 посылает атаку игроку 2, но должен подождать 45 минут, прежде чем игрок 1 достигнет игрока 2.
Я думаю об этом, когда Игрок 1 вызывает событие для атаки на Игрока 2, начальное время запуска сохраняется в базе данных, а время завершения рассчитывается и также сохраняется. Поэтому теперь, когда игрок 1 входит в свою учетную запись, оставшееся время можно отобразить, просто вычтя начальное время из последнего времени. Теперь проблема будет, когда Текущее время = Конечное время. Нужен ли мне сервер планирования, который извлекает информацию из базы данных каждую секунду, чтобы проверить, будет ли инициирована атака? Таким образом, я думаю, что это повлияло бы на производительность базы данных в больших масштабах. Есть ли лучший способ сделать это?