Понедельник, 25 Ноября 2024, 16:23

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Результаты поиска
kio_homeДата: Воскресенье, 30 Мая 2010, 01:17 | Сообщение # 1 | Тема: Уроки по созданию браузерной игры
уже был
Сейчас нет на сайте
Доброго времени суток smile
Достаточно долго искал по интернетам достойное решение следующей проблемы:
Пользователь запускает некоторый процесс (для простоты - посылает ресурсы другому игроку в игре), причём результат должен проявиться не сразу, а, например, через 15 минут. Информация о времени завершения записывается в БД и пользователь со спокойной душой уходит спать. Игрок, которому отправили ресурсы, в ближайшие пару лет в игру заходить не собирается. Внимание вопрос: по какому событию лучше всего обработать приход ресурсов?
Насколько я понимаю есть несколько решений:
1. Запустить cron или любое другое приложение на сервере которое будет через какой-либо промежуток времени дёргать php скрипт, который в свою очередь всю эту байду будет обрабатывать. (в этом решении меня смущают непонятки с выбором интервала времени, тк если взять маленький интервал очевидно всё повиснет (в логике моего рассуждения при каждом вызове скрипта мы можем обрабатывать события с временем <= настоящему, иначе при следующем вызове скрипта могут добавиться с "временем смерти" более ранним и повлиять на ход событий нами уже выполненных), а при большом интервале пользователю придётся ждать пока наш скрипт обработает событие, что по логике игры нонсенс + я не нашёл нормального программного решения дёргалки, но это меня меньше всего смущает)
2. Запускать скрипт при любом косвенном или прямом упоминании о любом из этих игроков или о данной операции конкретно. В некоторый момент это всё равно сводится к первому варианту, тк при отсутствии онлайна игроков (а нам интересна именно эта ситуация и отсутствие конфликтов с ситуацией, когда игроки присутствуют) вызываться скрипт чаще всего будет при подведении статистики.
3. Написать приложение, которое с некоторой периодичностью будет подключаться к нашей БД и выполнять все необходимые манипуляции (более элегантное решение варианта 1, но при этом вопрос об интервалах сохраняется).
Написал немного сумбурно, но я думаю, что суть вопроса ясна.
Если кто сталкивался с данной проблемой, не могли бы вы тут или в ЛС оставить некоторые комментарии.
Если решение варьируется в зависимости от количества таких событий будем считать, что событий, одновременно хранящихся в БД с совпадающем "временем смерти", около 10^4, пользователей около 5*10^4, минимальный интервал времени - секунда.


Сообщение отредактировал kio_home - Воскресенье, 30 Мая 2010, 01:21
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг