Запуск запланированной задачи для выполнения обновлений в вашей игре с любым интервалом приведет к резкому увеличению нагрузки на базу данных. Если ваша игровая логика полагается на то, что все эти значения базы данных должны быть обновлены одновременно (что весьма вероятно, если вы используете обновление на основе интервалов), вам придется запланировать время простоя на столько времени, сколько это необходимо. кронджоб работает. Когда это время увеличивается по мере роста вашей базы игроков, это становится чрезвычайно раздражающим.
Если вы пытаетесь уменьшить нагрузку на базу данных, вы должны хранить значения с их последним временем обновления и скоростью роста и обновлять эти строки только при изменении количества или скорости роста.
Например, тайник с золотом, который растет со скоростью 5 золотых в минуту, обновляется только тогда, когда игрок забирает из него золото. Когда вам нужно узнать текущую сумму, она рассчитывается на основе времени последнего обновления, текущего времени, суммы, сохраненной при последнем обновлении, и скорости роста.
Данные, которые изменяются с течением времени, не требуя взаимодействия, не принадлежат базе данных. Это место в логическом конце вашей игры. Когда игрок выполняет действие, которое вам нужно запомнить, или расчет становится слишком громоздким для повторного создания, тогда вы сохраняете его.
person
Frank Crook
schedule
20.07.2010