Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> каждую секунду выполнять 1 запрос 
:(
    Опции темы
supervladislav
Дата 17.7.2011, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



скажите как можно решить следующую задачу :
нужно каждую секунду выполнять запрос   в течении x секунд где x число до 15 

скажите как лучше сделать чтобы расходовать меньше выч мощности через триггер 
хранить информацию о времени и находить раздницу во времени между метками выполнять подобие вложенного запроса или 
через php 
PM MAIL   Вверх
vencendor
Дата 18.7.2011, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 10.12.2009

Репутация: нет
Всего: нет



x - это количество секунд затраченных на выполнение одного запроса ? 
Обычно требуется чтобы не было несколько запусков одного процесса в то же время. Существует вероятность что два процесса будут работать с теми же данными и в итоге получиться неадекватный результат. 
Если так то нужно ставить метку начала процесса (обычно просто создание файла) и удаление метки в конце. Если метка есть то не запускать вторую копию. 
Можно создать оболочку которая будет собирать время выполнения последних запусков и оновываясь на этих данных запускать или нет следующий процесс. 
PM   Вверх
supervladislav
Дата 18.7.2011, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



мне нужно чтобы каждую секунду выполнялся запрос sql 
в течении  x секунд на php,это нужно для серверного сценария компьютерной игры 
чтобы у игрока в течении 8 секунд убывала мана 
В триггер аргумент блин не передать никак 

Это сообщение отредактировал(а) supervladislav - 18.7.2011, 11:56
PM MAIL   Вверх
programming
Дата 18.7.2011, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 20.6.2008

Репутация: 1
Всего: 1



Так?
Код

<?php
$i=0;
$x=15;
while($i<$x)
{
//sql query
$i++;
sleep(1);
}
?>


Это сообщение отредактировал(а) programming - 18.7.2011, 15:26
--------------------
<удалено администрацией>
PM MAIL   Вверх
supervladislav
Дата 18.7.2011, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



что-то вроде такого <Но мне надо чтобы это было независио от остального кода тоесть наверное стоит обратиться к триггерописанию 
PM MAIL   Вверх
NFL
Дата 18.7.2011, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



supervladislav, на стороне клиента пробовали это сделать?
PM MAIL   Вверх
CruorVult
Дата 18.7.2011, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 9
Всего: 28



Цитата(supervladislav @  18.7.2011,  16:00 Найти цитируемый пост)
Но мне надо чтобы это было независио от остального кода


А что значит независимо?

Добавлено через 54 секунды
Цитата(NFL @  18.7.2011,  16:02 Найти цитируемый пост)
на стороне клиента пробовали это сделать

а если юзер обновит страницу или браузер подвиснет.
PM MAIL Skype   Вверх
supervladislav
Дата 18.7.2011, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



Или есть какойнибудь иной способ

Добавлено через 52 секунды
ну тоесть чтобы это сработало скажем при обновлении базы данных тоесть через триггер ,но как блин внутрь триггера дать аргумент 
PM MAIL   Вверх
CruorVult
Дата 18.7.2011, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 9
Всего: 28



Сделать можно с помощью fsockopen.
Кидаете запрос на файл 

mana.php
Код

<?php
$i=0;
$x=15;
while($i<$x)
{
//sql query
$i++;
sleep(1);
}
?>


а юзеру жс-ку, которая переодически юзает сервер и смотрит сколько сейчас маны!
PM MAIL Skype   Вверх
supervladislav
Дата 18.7.2011, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



удобнее было бы сделать через триггер
Вобще светлая идея а с выч мощностью как быть 


PM MAIL   Вверх
NFL
Дата 18.7.2011, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Цитата(CruorVult @  18.7.2011,  16:03 Найти цитируемый пост)
а если юзер обновит страницу


Ммм... Ну запускаем скрипт заново, $(document).ready(function(){...})
PM MAIL   Вверх
CruorVult
Дата 19.7.2011, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 9
Всего: 28



Цитата(NFL @  18.7.2011,  21:19 Найти цитируемый пост)
Ммм... Ну запускаем скрипт заново, $(document).ready(function(){...})


Ну если о клиенской игре речь - то возможно!

Но скорее всего мы говорим об онлайн игре, где любые реакции пользователя должны обрабатываться сервером.
PM MAIL Skype   Вверх
NFL
Дата 19.7.2011, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



CruorVult, если вы не поняли - то я намекаю на ajax ;) 
Потому и упомянул про "игру с клиентом"  smile 
PM MAIL   Вверх
CruorVult
Дата 19.7.2011, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 9
Всего: 28



Цитата(NFL @  19.7.2011,  10:16 Найти цитируемый пост)
CruorVult, если вы не поняли - то я намекаю на ajax ;) Потому и упомянул про "игру с клиентом"   


Ну допустим идет бой. Один боец коцнул другого магией, соответственно у второго начинается уменьшаться здоровье а у первого мана. И тут первый подвис и второй уже не дождется окончания боя.
PM MAIL Skype   Вверх
supervladislav
Дата 19.7.2011, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



CruorVult, на это и есть он лайн игра 
PM MAIL   Вверх
voral
Дата 19.7.2011, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 16.3.2008
Где: Иваново

Репутация: нет
Всего: нет



Очуметь. Если вы планируете игру на десяток игроков еще ни чего. Но если вы планируете реальную игру и рассчитываете на игроков.... То вам нужен очень  навороченный сервер. Если вы его хотите ежесекундно запросами долбать. 
Если вам нужна двухстороння связь. (Т.е. событие у одного игрока отображалось на остальных) то забывайте про php. Так как вам нужно, чтоб клиент устанавливал постоянное соединение с сервером. В этом случае у вас вся игра будет крутится на сервере, а клиенты будут, по сути, лишь интерфейсом. Пишите сервер на сях, да клиента на флеше. Можно, конечно, без постоянных соединений клиента на js забабахать..... Но это все равно будет жесть. Т.к. каждый игрок будет http-запросы ежесекундно слать на сервер.

Добавлено через 2 минуты и 49 секунд
Сами подумайте. Играют два человека. Каждую секунду, каждый игрок отправляет http-запрос. На сервере запускается скрипт, который коннектится к базе, отправляет запрос, формеирует страницу и отправляет по http обратно..... А если за минуту никто ни чего не сделал, то сразу столько мусорного трафика.
PM MAIL WWW   Вверх
NFL
Дата 19.7.2011, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



voral, ну почему сразу заывать о php? можно посмотреть в сторону Comet smile 
А долбать сервер таки да ) Негуманно )
PM MAIL   Вверх
voral
Дата 19.7.2011, 15:19 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 16.3.2008
Где: Иваново

Репутация: нет
Всего: нет



Цитата(NFL @  19.7.2011,  14:58 Найти цитируемый пост)
voral, ну почему сразу заывать о php? можно посмотреть в сторону Comet smile 

Отстал от жизни smile
Но! smile
С точки зрения игры. 
Нас колько я понял это технологию Comet. Нам придется для каждого игрока иметь запущенную копию скрипта обрабатывающую это псевдо-постоянное соединение. Т.е. каждый з этих скриптов будут жить сами по себе. Встает вопрос, кто будет обслуживать игровые ситуации? Если тащить в эти же скрипты - жесть мне кажется, да и вслучае сбоя в одном скрипте мы попадаем в непонятную ситуацию. Можно выделить обработку в отдельный скрипт вечно крутящийся на сервере. Но  php вроде пока не позволяет многопоточное что то написать, т.е. один экземпляр на каждую игру. Т.к. адресное пространство у скриптов разное - обмениваться только через БД. Тут мы опять упираемся в долбление БД с поводом и без.
Хотя, конечно, вроде используют для чатов и даже финансовых ресурсов (жесть ИМХО)....

Не знаю не знаю. Чисто мое мнение с учетом задачи "написание онлайн игры": проет либо на малое число пользователей, либо достаточно быстро станет не нужен, либо встанет вопрос о переписывании с 0.
Это чисто, ИМХО, на абсоютную правоту не претендую, но ТС необходимо неколько раз взвесить и сопоставить свои цели и выбираемые инструменты решения
PM MAIL WWW   Вверх
CruorVult
Дата 19.7.2011, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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
PM MAIL Skype   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1399 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.