![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Bog d`An |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 26.3.2005 Где: Украина:Днепропет ровск Репутация: нет Всего: 3 |
Может и полный нуб, но вопрос. Каждые две секунды, допустим надо отдавать пользователю данные о текущем состоянии дел в чате.
Если это идёт запрос в мускул за минутут получаем 30 запросов (и это только часть из возможных) получаем 30*60=1800 запросов в час. На хосте стоит ограничение 10000запросов в час. получается одновременно около5ти человек могут общатся. Нехорошо... Вопрос. как сделать что-то по типу (или просто без что-то типа) кеширования. Ведь не обязательно каждые две секунды обновляется инфа... Спасибо и извините) --------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер] |
|||
|
||||
xbelyi |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 3.8.2008 Репутация: нет Всего: нет |
Я бы в таком случае посоветовал демон писать, но раз ограничение на хостинге даже на количество запросов к БД, то это не удасться. Ведь невозможно указать браузеру, когда надо обновлять информацию, а когда не надо, без сокетов.
Единственным, как мне кажется, решением является ставить запрос в 5-7 секунд, ибо очень тяжело будет читать страницу, обновляющуюся каждые 2 сек. 5сек на запрос, 12 запросов в минуту, 720 в час, 14 человек, что впрочем тоже плохо. |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Ну, раз такая пьянка - пишите новые сообщения в файл. Раз в минуту один из скриптов будет сливать в базу все сообщения одним запросом. Все скрипты выводят сообщения из базы + сообщения из файла.
можно хранить новые сообщения в Memcache -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Bog d`An |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 26.3.2005 Где: Украина:Днепропет ровск Репутация: нет Всего: 3 |
ksnk, так, в принципе и думал... вопрос - это сильно нагружает систему?
ссылочки по теме не порекомендуете? --------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер] |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
про memcache? Это отдельное расширение, впрочем, довольно распространенное.
Добавлено @ 14:33 А так - идея проста - сериализованный масив из новых сообщений хранится в файле. Работа с файлом должна проходить через flock... Вот , собственно и все... ![]() Это сообщение отредактировал(а) ksnk - 25.1.2009, 14:35 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Bog d`An |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 26.3.2005 Где: Украина:Днепропет ровск Репутация: нет Всего: 3 |
я так понимаю это какой-то демон?
я могу его прикрутить к скрипту, если доступ только для моей папки и прочие злобные ограничения стоятЪ)) или придётся ещё доплачивать за его работу? =-.-= там вроде для демонов отдельные тарифы --------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер] |
|||
|
||||
enof |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
С такими ограничениями наверное стоит забыть о БД.
Например каждые 5 секунд(желательно конечно меньше,а не то форум получится) аякс дергает скрипт. Каждый раз доставать все сообщения накладно,поэтому сначала нужно узнать,появились ли новые сообщения и только потом тянуть нужное. от одного человека получается: 1 запрос в 5 секунд + 0.5( предположим,что сообщения в штатном режиме будут появляться 1 штука в 10 секунд). 1.5 * 60 * 60 = 5400 запросов в час от одного человека,который ничего не будет писать. Плюс по запросу на каждое отправленное сообщение. Даже мегаэстонский чат не получится,если только сидеть будут по 20 минут в час. Как вариант можно каждому юзеру при входе заводить свой файл и писать в него цифру. 0 = нет сообщений. N = n новых сообщений в базе. Аякс делает запрос к скрипту,скрипт проверяет файл юзера,если есть новые сообщения достает их из базы и записывает ноль в файл. При отправлении юзером сообщения,скрипт пишет его в базу,и обновляет все файлы,инкрементирую записанное значение в файле. Только при этом варианте придется позаботиться о сохранности очереди при записи\чтении файлов. Бред какой-то получается,лучше полностью тогда на файлах все делать ![]() Добавлено через 1 минуту и 11 секунд А еще лучше нормальный хостинг купить ![]() |
|||
|
||||
NNaarreekk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 768 Регистрация: 23.6.2007 Где: Армения Репутация: 0 Всего: 3 |
Я не понял ачто хостингу пофиг какой запрос?
То есть всю инфу берешь или отдельный строку?? |
|||
|
||||
enof |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
NNaarreekk, Смотря что хостер считает запросом.
mysql_select_db тоже ведь запрос делает. mysql_insert_id тоже,не из воздуха же функция значение берет. mysql_fetch_* и т.д. запрос-то один будет.А учитывается ли потом работа с результатом,хз. Прояснить ситуация нам может только топикстартер. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |