Регистрация Правила Главная форума Поиск |
0
- 10.10.2012 - 23:48
|
Есть что-то вроде чата. Так вот, на данном этапе решено, чтобы у каждого пользователя был один файл и один php-тред, который каждую секунду проверяет, не увеличивался ли файл (новые сообщения дописываются в конец файла). Но появилось подозрение, что лучше было бы, если бы была папка, которую следовало бы детектить на предмет появления новых файлов (каждое новое сообщение - новый файл). Тест того и другого займет время и вряд ли будет объективным, т.к. скрипт будет работать на разных серверах и предсказать наверняка, что оптимальнее, исходя из результатов тестов, думаю вряд ли получится. Поэтому спрашиваю у профессионалов по php (если таковые есть): что будет быстрее срабатывать - проверка на удлинение файла или проверка на появление нового файла? | | |
1
- 11.10.2012 - 08:10
|
Описанное выглядит как нечто очень велосипедообразное. Тем не менее, если сервера на Linux, можно воспользоваться inotify: http://php.net/manual/ru/book.inotify.php | | |
2
- 11.10.2012 - 13:32
| а почему бы не узнавать дату изменения файла?? | | |
3
- 11.10.2012 - 14:57
|
Два вопроса 1. Пользователи не через блокнот и FTP передают сообщения в "чат"? Если для передачи сообщений используется скрипт, то пусть он по окончании работы и вызывает "php-тред". 2. Может лучше хранить данные в БД? Файлы разбухнут по количеству и размеру, и в какой-то момент система начнет тупить из-за этого. | | |
4
- 11.10.2012 - 19:40
| Цитата:
это самый быстрый способ определения новых сообщений? | | |
5
- 11.10.2012 - 20:34
| Если Вы различаете пользователей между собой, значит они как-то идентифицированы. Что мешает "послать" в нужное место "сигнал", сразу по принятии сообщения от конкретного пользователя, а не отслеживать факт нового сообщения с помощью опросчика файловой системы. К сожалению, не описана формализация понятия "новое сообщение" для Вашей задачи. Но для больших проектов обычно используют БД. В БД можно хранить и дату (время) сообщения и делать выборку по сообщениям, которые моложе определенного срока, равно как и пометку новое это сообщение или уже нет. | | |
6
- 11.10.2012 - 20:51
| Не понял. Что значит послать сигнал? Два чела чатятся на сайте. Что за сигнал можно послать? Вы имеете в виду p2p? Цитата:
Что тут непонятного? Пользователь набирает текст и отправляет его. | | |
7
- 11.10.2012 - 20:59
| Ни в коем разе не пытаюсь подвергнуть сомнению выбранный Вами подход к реализации чата. Если обозначенные вопросы не подходят для Вашей модели, это нормальное течение событий. | | |
8
- 11.10.2012 - 21:13
|
Упрощаю: 8) В php висит тред, который каждую секунду проверяет новые записи в ........ Вместо ...... надо поставить то, где быстрее всего отображаются добавленные данные. Варианты для .............: существующий файл (проверка на изменение размера/даты), новый файл (проверка на наличие новых файлов в папке с файлами), база (проверка на наличие новых записей в таблице бд). проверка какого из вариантов будет самая шустрая? | | |
9
- 11.10.2012 - 21:43
| база, тот же mysql | | |
10
- 11.10.2012 - 21:44
| в голову бы не пришло делать нечто подобное в файловой системе | | |
11
- 11.10.2012 - 23:05
|
10-Фанат NASCAR > часто бывал свидетелем, когда коннект с базой падает из-за слишком большого количества запросов. С файловой системой такого не замечал. | | |
12
- 12.10.2012 - 08:48
|
(8) Самый шустрый вариант я Вам уже привёл. Вы получите event от ядра практически моментально, будь то создание, изменение или удаление файла. Не знаю, как все, а я лично теряюсь от вопросов типа «Как круче пришить к козе баян». Не в обиду автору будь сказано. | | |
13
- 12.10.2012 - 16:39
|
если объем сообщений будет большой или пользователей будет много в чате, то нужно использовать базу данных. непонятно, какая будет реализация, поэтому можно лишь гадать. К примеру при поступлении нового сообщения отмечать для нужного пользователя, что у него есть новые сообщения. | | |
14
- 12.10.2012 - 16:40
| если будет php создавать большую нагрузку, то хостер просто отключит сайт :) | | |
15
- 12.10.2012 - 19:57
|
14-Искусственный Интеллект1 > не отключит, спокуха Тем более речь про файловую систему, а не нагрузку базы через php. Хотя если база будет быстрее, то согласен и через базу, лишь бы быстрее работало. 12-kowalski > да, вещь хорошая. Но это еще надо расчехлиться, как ее устанавливать. | | |
16
- 13.10.2012 - 19:54
| 15-Протезофф > Речь именно об php: если php будет создавать нагрузку большую чем предоставляет тариф, то хостинг может отключить сайт. Что еще не сталкивались с таким что ли? :) | | |
17
- 13.10.2012 - 20:51
|
16-Искусственный Интеллект1 > вы про вирт. хостинг? Нахрена он мне надо? Нет, конечно, ложить сервак никто не хочет, но вопрос про быстроту. База? Пусть будет база, если с ней быстрее. Вот только боюсь что упадет коннект, если будет дофига пользователей/сообщений. | |
![]() | Интернет-форум Краснодарского края и Краснодара |