Вообщем расклад такой, у нас с приятелем есть онлайн игра для мобильных браузеров. Собственно нам нужно чтобы определенные команды (файлы) запускались очень часто: что то около раза в секунду. Я уже где то рыл инфу по этому поводу, начитал что нужен VDS свой с поддержкой модулей, там мы сможешь организовать это. Кто подскажет что рыть надо?
PS Крон разумеется рассматривали, но слишком большая нагрузка и нельзя очень часто его запустить
sergeiss
4.08.2014 - 00:29
Если тебе надо на сервере что-то постоянно запускать, то можно использовать демон (daemon) - программу (скрипт) которая постоянно работает и что-то выполняет с определенной периодичностью.
Если не секрет - что именно запускаешь так часто? Возможно, можно изменить алгоритм и запускать пореже?
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Надо запускать именно PHP код для работы с бд, он будет проходить по небольшому циклу и обновлять данные из бд
конечная цель какая?
при любом раскладе не вижу смысла каждую секунду дёргать базу да ещё и в цикле
Цитата (rooor @ 4.08.2014 - 17:15) |
конечная цель какая? при любом раскладе не вижу смысла каждую секунду дёргать базу да ещё и в цикле |
Да вопрос не в этом совсем, я его задал в раздел не о помощи в коде, факт в том что это нужно делать, я лишь спрашиваю какими средствами, понимаете?
sergeiss
4.08.2014 - 22:46
Цитата (Dizzy @ 4.08.2014 - 21:32) |
факт в том что это нужно делать, я лишь спрашиваю какими средствами |
Как я уже говорил, демон на ПХП может, в принципе, работать с этой задачей. Точнее говоря, на любом ЯП, умеющем работать с нужным типом БД.
Проблема только в том, как уже верно заметил
rooor, что обычно не имеет смысла ежесекундно дергать БД. При большом количестве записей и/или при большом количестве обращений к БД эти ежесекундные запросы могут просто "убить" твою БД.
Чаще всего вдумчивое изменение алгоритма приводит к тому, что запросы отправляются реже
Например, в среднем раз в 20 секунд. И за один запрос ты делаешь те же изменения, что сделал бы за 20 ежесекундных запросов.
Поэтому вопрос вполне закономерен:
Цитата (rooor @ 4.08.2014 - 21:15) |
конечная цель какая? |
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Цитата (sergeiss @ 4.08.2014 - 18:46) |
Цитата (Dizzy @ 4.08.2014 - 21:32) | факт в том что это нужно делать, я лишь спрашиваю какими средствами |
Как я уже говорил, демон на ПХП может, в принципе, работать с этой задачей. Точнее говоря, на любом ЯП, умеющем работать с нужным типом БД. Проблема только в том, как уже верно заметил rooor, что обычно не имеет смысла ежесекундно дергать БД. При большом количестве записей и/или при большом количестве обращений к БД эти ежесекундные запросы могут просто "убить" твою БД. Чаще всего вдумчивое изменение алгоритма приводит к тому, что запросы отправляются реже Например, в среднем раз в 20 секунд. И за один запрос ты делаешь те же изменения, что сделал бы за 20 ежесекундных запросов. Поэтому вопрос вполне закономерен: Цитата (rooor @ 4.08.2014 - 21:15) | конечная цель какая? |
|
В принципе, будет достаточно дергать бд даже не ежесекундно, а раз в 3-5 секунд. Можно линк об этом "Демоне"? Чтобы почитать более подробно
Игорь_Vasinsky
4.08.2014 - 23:22
Цитата |
а раз в 3-5 секунд |
тут и крона хватит.
Цитата |
PS Крон разумеется рассматривали, но слишком большая нагрузка и нельзя очень часто его запустить |
запуск минимум с интервалом в 2 сек.
нагрузка??? ))) а почему она на демоне будет другая?
и в том и в другом случае работает один и тот же скрипт - ваш скрипт.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Цитата (Игорь_Vasinsky @ 4.08.2014 - 19:22) |
Цитата | а раз в 3-5 секунд |
тут и крона хватит.
Цитата | PS Крон разумеется рассматривали, но слишком большая нагрузка и нельзя очень часто его запустить |
запуск минимум с интервалом в 2 сек. нагрузка??? ))) а почему она на демоне будет другая? и в том и в другом случае работает один и тот же скрипт - ваш скрипт.
|
Как запустить крон менее раза в минуту? юзая sleep?
вопрос открыт
Цитата |
конечная цель какая? |
мой тоже =)
DizzyКрон запустил.
В нём
for($i=1; $i<60;$i++) { // 60 раз будет код
И всё. Добавь проверку времени. А ещё лучше:
while(true) { // бесконечно ходить по кругу. Но внутри делаешь проверку на время, если 1 секунда прошла, то выполняешь код, а если нет - ждёшь через sleep(1). И как только 60 секунд отработает - вырубаешь, так как Крон уже новый запустил.
А в целом, надеюсь это не добавление денег каждую секунду, так как такие задачи решаются несколько иначе
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Цитата (inpost @ 6.08.2014 - 19:24) |
Dizzy Крон запустил. В нём for($i=1; $i<60;$i++) { // 60 раз будет код И всё. Добавь проверку времени. А ещё лучше: while(true) { // бесконечно ходить по кругу. Но внутри делаешь проверку на время, если 1 секунда прошла, то выполняешь код, а если нет - ждёшь через sleep(1). И как только 60 секунд отработает - вырубаешь, так как Крон уже новый запустил.
А в целом, надеюсь это не добавление денег каждую секунду, так как такие задачи решаются несколько иначе |
Так в этом то и дело, что провекра произойдет только с обновлением страницы, а нужно чтобы это всё делалось в фоновом режиме, в независимости от того будет ли она обновлена. Именно поэтому нужно запускать крон реже в минуту. А если крон такое не может, то вот я интересуюсь какими еще средствами можно выполнять файл раз в несколько секунд...
Цитата (rooor @ 6.08.2014 - 19:06) |
Цитата | конечная цель какая? |
мой тоже =)
|
секрет фирмы
ну а если серьезно, то это просто напросто не важно, потому что интересует решение
только этим путем, никакие другие алгоритмы действий быть рассмотрены не могут :-(
jetistyum
7.08.2014 - 01:04
Вообще-то PHP умеет работать и отдельно, без веб-сервера и "страниц"
php -f filaname.php
И всеже у меня тоже возникает сомнение в необходимости такого алгоритма.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.