Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Выполнение php кода в строго назначенное время
 
 автор: Dazzl   (19.03.2012 в 14:07)   письмо автору
 
 

Здравствуйте, такой вопрос, можно ли как-нить заставить php выполняться в определенное время без вмешательства пользователя?

  Ответить  
 
 автор: DJ Paltus   (19.03.2012 в 14:09)   письмо автору
 
   для: Dazzl   (19.03.2012 в 14:07)
 

только по расписанию. В зависимости от системы, это может быть планировщик задач или таблица cron.

  Ответить  
 
 автор: Dazzl   (19.03.2012 в 14:18)   письмо автору
 
   для: DJ Paltus   (19.03.2012 в 14:09)
 

Вот мне над так чтоб к каждому пользователю(строке в mysql) была привязная выполнение в указанный период, скажем так я делаю он лайн стратегию и при завершении строительства здания над выполнить php код и закончить строительство...

  Ответить  
 
 автор: Lotanaen   (19.03.2012 в 14:30)   письмо автору
 
   для: Dazzl   (19.03.2012 в 14:18)
 

А зачем Вам именно в указанный период? может Вас устоит такой вариант: - если у юзера страница открыта, то от клиента отправляйте запрос на сервер на завершение действий. А если закрыта, то при входе юзера в игру завершайте все стройки.

  Ответить  
 
 автор: Dazzl   (19.03.2012 в 14:36)   письмо автору
 
   для: Lotanaen   (19.03.2012 в 14:30)
 

Не если его нет стройка должна быть завершена в срок иначе нападающий её не увидет, а если это будет оборонительная стена или башня )) я то же так думал, потом даже хотел написать вин приложение которое отпровляет каждые 10 сек запрос и завершает стройку но потом решил что эт слишко накладно для сервака

  Ответить  
 
 автор: Lotanaen   (19.03.2012 в 14:39)   письмо автору
 
   для: Dazzl   (19.03.2012 в 14:36)
 

ну так же точно и при просмотре нападающим можно показывать что идет стройка и сколько до завершения стройки осталось, ну и завершать стройку аналогично по запросу.
На кроне он же тоже не увидит, что стройка завершена, если посмотрит например за полминуты до ее завершения.

  Ответить  
 
 автор: Dazzl   (19.03.2012 в 14:43)   письмо автору
 
   для: Lotanaen   (19.03.2012 в 14:39)
 

И так тоже пытался, тока для этого почему то приходить 2 раза делать запрос незнаю почему я 20 раз переписывал код и все равно приходиться посылать 2 запроса (

  Ответить  
 
 автор: Lotanaen   (19.03.2012 в 14:49)   письмо автору
 
   для: Dazzl   (19.03.2012 в 14:43)
 

какие запросы и зачем два?

  Ответить  
 
 автор: Dazzl   (19.03.2012 в 14:52)   письмо автору
 
   для: Lotanaen   (19.03.2012 в 14:49)
 

Мне сейчас вам трудно объяснить, но я помню что приходилось 2 раза обновлять одну и туже страницу 1-й раз он строил второй раз показывал что стройка завершена

  Ответить  
 
 автор: Lotanaen   (19.03.2012 в 14:56)   письмо автору
 
   для: Dazzl   (19.03.2012 в 14:52)
 

а зачем полностью страницу обновлять? ajax используйте.

  Ответить  
 
 автор: Dazzl   (19.03.2012 в 14:59)   письмо автору
 
   для: Lotanaen   (19.03.2012 в 14:56)
 

я с аяксом не очень дружу (

  Ответить  
 
 автор: Lotanaen   (19.03.2012 в 15:00)   письмо автору
 
   для: Dazzl   (19.03.2012 в 14:59)
 

Вообще-то это не такой уж и простой вопрос как сделать лучше. Что и как там у вас реализовано я только смутно могу себе представить.

  Ответить  
 
 автор: Dazzl   (19.03.2012 в 15:03)   письмо автору
 
   для: Lotanaen   (19.03.2012 в 15:00)
 

Вообщем скажу так у меня все работает, даже строительство происходит как вы сказали "перед нападением завершает все стройки" тока прихоиться 2 раза отправлять запрос "посмотреть", а если он отправит тока один раз и не увидит что так УЖЕ стоит стена ))) во я пришел сюда узнать про пхп чуть больше

  Ответить  
 
 автор: Valick   (19.03.2012 в 14:44)   письмо автору
 
   для: Dazzl   (19.03.2012 в 14:18)
 

строительство там заканчивается ровно в тот момент когда оно начинается
просто ставятся две метки времени начало строительства и конец строительства
и ставятся они одновременно, одним запросом
а РНР код выполняется в любое время, но не раньше конца строительства
вот и вся "уличная магия"

[поправлено модератором]

  Ответить  
 
 автор: Dazzl   (19.03.2012 в 14:48)   письмо автору
 
   для: Valick   (19.03.2012 в 14:44)
 

Знаю так и делаю:

$vrema = time() + 3600;
if (time() >= $vrema) echo "Строительство завершено";

  Ответить  
 
 автор: Valick   (19.03.2012 в 14:56)   письмо автору
 
   для: Dazzl   (19.03.2012 в 14:48)
 

нет не так :)
у вас практически вся логика должна быть "завязана" на базу данных
грубо говоря $vrema = time() + 3600; в коде быть не должно
я сейчас вам не могу подробно объяснить почему
но конец строительства так же как и начало, это конкретная физическая величина
и она должна быть отражена в базе данных, потому как эти сущности непосредственно влияют на механику игры

  Ответить  
 
 автор: Valick   (19.03.2012 в 14:59)   письмо автору
 
   для: Dazzl   (19.03.2012 в 14:48)
 

и вообще зацените http://ru.battlestar-galactica.bigpoint.com/big/11?aid=333&aig=311
лично у меня оно надолго отбило желание писать игры :)

  Ответить  
 
 автор: Dazzl   (19.03.2012 в 15:05)   письмо автору
 
   для: Valick   (19.03.2012 в 14:59)
 

Впечатляет, но я видел самые ничтожные сервера онлайн стратегии, на которых было как минимум 1000 игроков

  Ответить  
 
 автор: Valick   (19.03.2012 в 15:18)   письмо автору
 
   для: Dazzl   (19.03.2012 в 15:05)
 

конечно впечатляет, там только название браузерная, на самом деле браузер где-то в сторонке курит, а основную работу делает Unity Web Player
___
если вы хотите стратегию реального времени, то вам либо AJAX либо Flash без вариантов

  Ответить  
 
 автор: Dazzl   (19.03.2012 в 15:24)   письмо автору
 
   для: Valick   (19.03.2012 в 15:18)
 

Я знаю, я не профии, поэтому пока хочу сделать игру по запросам

  Ответить  
 
 автор: Valick   (19.03.2012 в 14:14)   письмо автору
 
   для: Dazzl   (19.03.2012 в 14:07)
 

другое дело, зачем вам это понадобилось?

  Ответить  
 
 автор: Dazzl   (19.03.2012 в 14:21)   письмо автору
 
   для: Valick   (19.03.2012 в 14:14)
 

Ну так что люди стоит мне браться за эту КРОН систему она поможет мне?

  Ответить  
 
 автор: Valick   (19.03.2012 в 15:37)   письмо автору
 
   для: Dazzl   (19.03.2012 в 14:21)
 

не надо браться за этот КРОН, браться надо за создание таблиц и за организацию грамотных связей между этими таблицами
например таблица строительство:
stroyka
st_id - идентификатор строки (int)
st_user - пользователь которому принадлежит здание (внешний ключ) (int)
st_vid - вид постройки (дом, стена, оградка, башня, замок и тд) (внешний ключ) (int)
st_start - начало строительства (timestamp)
st_end - конец строительства (timestamp)
st_och - очки "жизни" постройки (int)
st_rem - окончание ремонта (timestamp)

ну и еще какие-нибудь поля характеристики конкретной постройки

  Ответить  
 
 автор: Dazzl   (19.03.2012 в 16:12)   письмо автору
 
   для: Valick   (19.03.2012 в 15:37)
 

Так есть у меня отдельная таблица строительства, все есть сторойка проходит отлично тока у меня проблема с окончанием строительства при отсутствии пользователя

  Ответить  
 
 автор: Valick   (19.03.2012 в 17:07)   письмо автору
 
   для: Dazzl   (19.03.2012 в 16:12)
 

Так есть у меня отдельная таблица
так покажите ее структуру
блин, ну как вам еще объяснить, что с окончанием проблем быть не должно, хоть онлайн пользователь, хоть вообще месяц не заходил, и ему кто-то в подарок хату построил
есть конкретная дата окончания постройки, которая сравнивается с текущей меткой времени при запросе к бд, если текущее время меньше чем время окончания постройки, то значит не построено, если текущее время больше времени окончания постройки, то построено

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования