![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
supervladislav |
|
|||
![]() ///\\\///\\\///\\\ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 18.5.2006 Репутация: -8 Всего: -9 |
скажите как можно решить следующую задачу :
нужно каждую секунду выполнять запрос в течении x секунд где x число до 15 скажите как лучше сделать чтобы расходовать меньше выч мощности через триггер хранить информацию о времени и находить раздницу во времени между метками выполнять подобие вложенного запроса или через php |
|||
|
||||
vencendor |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.12.2009 Репутация: нет Всего: нет |
x - это количество секунд затраченных на выполнение одного запроса ?
Обычно требуется чтобы не было несколько запусков одного процесса в то же время. Существует вероятность что два процесса будут работать с теми же данными и в итоге получиться неадекватный результат. Если так то нужно ставить метку начала процесса (обычно просто создание файла) и удаление метки в конце. Если метка есть то не запускать вторую копию. Можно создать оболочку которая будет собирать время выполнения последних запусков и оновываясь на этих данных запускать или нет следующий процесс. |
|||
|
||||
supervladislav |
|
|||
![]() ///\\\///\\\///\\\ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 18.5.2006 Репутация: -8 Всего: -9 |
мне нужно чтобы каждую секунду выполнялся запрос sql
в течении x секунд на php,это нужно для серверного сценария компьютерной игры чтобы у игрока в течении 8 секунд убывала мана В триггер аргумент блин не передать никак Это сообщение отредактировал(а) supervladislav - 18.7.2011, 11:56 |
|||
|
||||
programming |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 20.6.2008 Репутация: 1 Всего: 1 |
Так?
Это сообщение отредактировал(а) programming - 18.7.2011, 15:26 --------------------
<удалено администрацией> |
|||
|
||||
supervladislav |
|
|||
![]() ///\\\///\\\///\\\ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 18.5.2006 Репутация: -8 Всего: -9 |
что-то вроде такого <Но мне надо чтобы это было независио от остального кода тоесть наверное стоит обратиться к триггерописанию
|
|||
|
||||
NFL |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
supervladislav, на стороне клиента пробовали это сделать?
|
|||
|
||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 9 Всего: 28 |
||||
|
||||
supervladislav |
|
|||
![]() ///\\\///\\\///\\\ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 18.5.2006 Репутация: -8 Всего: -9 |
Или есть какойнибудь иной способ
Добавлено через 52 секунды ну тоесть чтобы это сработало скажем при обновлении базы данных тоесть через триггер ,но как блин внутрь триггера дать аргумент |
|||
|
||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 9 Всего: 28 |
Сделать можно с помощью fsockopen.
Кидаете запрос на файл mana.php
а юзеру жс-ку, которая переодически юзает сервер и смотрит сколько сейчас маны! |
|||
|
||||
supervladislav |
|
|||
![]() ///\\\///\\\///\\\ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 18.5.2006 Репутация: -8 Всего: -9 |
удобнее было бы сделать через триггер
Вобще светлая идея а с выч мощностью как быть |
|||
|
||||
NFL |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
||||
|
||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 9 Всего: 28 |
||||
|
||||
NFL |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
CruorVult, если вы не поняли - то я намекаю на ajax ;)
Потому и упомянул про "игру с клиентом" ![]() |
|||
|
||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 9 Всего: 28 |
Ну допустим идет бой. Один боец коцнул другого магией, соответственно у второго начинается уменьшаться здоровье а у первого мана. И тут первый подвис и второй уже не дождется окончания боя. |
|||
|
||||
supervladislav |
|
|||
![]() ///\\\///\\\///\\\ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 18.5.2006 Репутация: -8 Всего: -9 |
CruorVult, на это и есть он лайн игра
|
|||
|
||||
voral |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 16.3.2008 Где: Иваново Репутация: нет Всего: нет |
Очуметь. Если вы планируете игру на десяток игроков еще ни чего. Но если вы планируете реальную игру и рассчитываете на игроков.... То вам нужен очень навороченный сервер. Если вы его хотите ежесекундно запросами долбать.
Если вам нужна двухстороння связь. (Т.е. событие у одного игрока отображалось на остальных) то забывайте про php. Так как вам нужно, чтоб клиент устанавливал постоянное соединение с сервером. В этом случае у вас вся игра будет крутится на сервере, а клиенты будут, по сути, лишь интерфейсом. Пишите сервер на сях, да клиента на флеше. Можно, конечно, без постоянных соединений клиента на js забабахать..... Но это все равно будет жесть. Т.к. каждый игрок будет http-запросы ежесекундно слать на сервер. Добавлено через 2 минуты и 49 секунд Сами подумайте. Играют два человека. Каждую секунду, каждый игрок отправляет http-запрос. На сервере запускается скрипт, который коннектится к базе, отправляет запрос, формеирует страницу и отправляет по http обратно..... А если за минуту никто ни чего не сделал, то сразу столько мусорного трафика. |
|||
|
||||
NFL |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
voral, ну почему сразу заывать о php? можно посмотреть в сторону Comet
![]() А долбать сервер таки да ) Негуманно ) |
|||
|
||||
voral |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 16.3.2008 Где: Иваново Репутация: нет Всего: нет |
Отстал от жизни ![]() Но! ![]() С точки зрения игры. Нас колько я понял это технологию Comet. Нам придется для каждого игрока иметь запущенную копию скрипта обрабатывающую это псевдо-постоянное соединение. Т.е. каждый з этих скриптов будут жить сами по себе. Встает вопрос, кто будет обслуживать игровые ситуации? Если тащить в эти же скрипты - жесть мне кажется, да и вслучае сбоя в одном скрипте мы попадаем в непонятную ситуацию. Можно выделить обработку в отдельный скрипт вечно крутящийся на сервере. Но php вроде пока не позволяет многопоточное что то написать, т.е. один экземпляр на каждую игру. Т.к. адресное пространство у скриптов разное - обмениваться только через БД. Тут мы опять упираемся в долбление БД с поводом и без. Хотя, конечно, вроде используют для чатов и даже финансовых ресурсов (жесть ИМХО).... Не знаю не знаю. Чисто мое мнение с учетом задачи "написание онлайн игры": проет либо на малое число пользователей, либо достаточно быстро станет не нужен, либо встанет вопрос о переписывании с 0. Это чисто, ИМХО, на абсоютную правоту не претендую, но ТС необходимо неколько раз взвесить и сопоставить свои цели и выбираемые инструменты решения |
|||
|
||||
CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 9 Всего: 28 |
Согласен с voral, написание онлайн игры, которая постоянно поддерживает контак с сервером на пхп это тоже самое что мухе пытаться поднять слона.
Сейчас кстати развивается server-side JavaScript, который и расчитан на выполнние такого рода задач. Вот к примеру можно глянуть как работает браузерная игра, серверная часть которой написана на JS http://www.youtube.com/watch?v=Ol3qQ4CEUTo...feature=related Это сообщение отредактировал(а) CruorVult - 19.7.2011, 15:55 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |