В качестве примера буду использовать браузерную онлайн игру "травиан". В игре "травиан" игроки строят здания и получают за них очки. Сами здания строятся не сразу, а через определённый промежуток времени и очки добавляются после того как здание построенно! Пример: здание строится 30 минут. Игрок заходит в игру скрипт проверяет есть ли построенные здания и если есть добавляет за них очки. Но если он не зашёл скрипт ведь сам не запустится! Возможные решение: 1)У всех игроков при запуске какого то скрипт происходит проверка на готовность зданий у всех игроков, но если нужно будет выполнить 1000 апдэйтов(мускул) это станет проблемой? Собственно мой вопрос : Как им добавляются очки если игрок не зашёл в игру? Какие технологии используются для этого(чисто php или крон?). Кто понял суть вопроса?
GiMli.GM как раз запуск апдейта по крону позволяет уменьшить нагрузку на БД. В принципе можно обойтись двумя-тремя запросами обновляющими большое количество записей одновременно. Ситуацию стоит рассматривать с такой точки зрения: 1) вам в любом случае надо делать начисления для всех игроков независимо от того заходят они в игру, или нет. Хотя бы для того, чтобы отображать актуальный рейтинг игроков. 2) При обновлении данных на доступе к ним у вас в худшем случае будет N (по числу игроков одновременно обратившихся к странице) конкурирующих запросов на обновление базы. 3) Либо у вас будет раз в некоторое время делаться два три запроса, достаточно сложных, но которые СУБД хорошо обрабатывает