Возможно ли иметь "внутренний" cron в mysql5? - PullRequest
0 голосов
/ 12 июня 2011

На днях друг предложил поиграть в браузерную игру под названием OGame.Если вы этого не знаете, я расскажу вам, что это такое: ртс игра, в которой вы должны строить такие вещи, как фабрики по добыче полезных ископаемых, казармы и так далее.Интересно, что у каждого здания есть время сборки, и вы можете выйти из него, пока оно строится, потому что оно будет продолжать работать.

Примерно так, как я полагаю, управляется через dbms.У меня есть свои записи, где у меня есть время окончания собрания.Как проверить, когда обновлять здание?Нужно ли мне внешнее приложение, которое каждую секунду проверяет, какую запись нужно обновить?Возможно ли с mysql5 иметь внутренний планировщик, который запускает процедуру для этой таблицы?И если да, то это лучшая практика?

1 Ответ

2 голосов
/ 12 июня 2011

Я построил похожую игру и сохранил время окончания строительства (и другие события, которые должны быть запущены) в таблице событий.Я написал PHP-демон, который регулярно проверяет таблицу событий на наличие записей с истекшим сроком действия и действует соответственно с ними.

Я не смог найти способ сделать это в самой базе данных (и если позже я захотел перейти на другуюБД это нужно будет переписать).Cron'd сценарий может перекрываться.Демон может все время отслеживать и выводить отладочную информацию, если события стоят в очереди быстрее, чем они обрабатываются.Я также добавил cron для периодической проверки того, что мой демон все еще работает, в противном случае запустите его.

Создание демона в PHP (если вы используете PHP)

Надеюсь, это поможет.

...