[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сессии еще одно узкое место
Страницы: 1, 2, 3
Guest
Цитата (MiksIr @ 16.08.2013 - 05:37)
и всякие $_SESSION['x']++ могут начать... вести себя не так, как ожидаемо


Не так как ожидаемо, может повести себя неверно построенная асинхронность, но никак не $_SESSION['x']++. Вероятно у вас пробел в данной области знаний.

Мой вам совет: поковыряйте на досуге этот механизм и пока сами фундаментально не разберетесь - не учите других.

Если же вы со мной не согласны, приведите мне пример который будет глючить и я исправлю его специально для вас. Только пожалуйста без фреймворков и библиотек, процедурный стиль сэкономит кучу моего времени.
Guest
Цитата (MiksIr @ 18.08.2013 - 05:55)
Ну исправляйте $_SESSION['x']++ в случае хранения сессий в мемкеше.


Оператор ++ работает корректно, как и было задуманно разработчиками языка, а своей фразой "исправляйте", вы бросаете вызов не мне, а им, обвиняя их в некорректной работе спроектированных вами алгоритмов.

Цитата (MiksIr @ 18.08.2013 - 05:55)
И постарайтесь перечитывать то, что вы написали. Пока такое впечатление, что вы просто умных слов нахватались, а связать в мысль - не получается.


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

Я никогда не принимаю участие в дисскуссиях, в которых не соображаю. А если и принимаю, то пишу вопросительные комментарии а не утвердительные.

И что вы все время сетуете на непонимание? При чем уже не в первой теме. Давайте тогда общаться кодом, это самый верный способ выяснить истину. Мы же программисты. Или вы так, потрепаться зашли?
Guest
Заморочки с сессией у вас, не у меня. Я лишь хотел помочь разобраться в проблемном месте, безо всяких подвохов. Если вам это не нужно, то мне тем более.

И я имею полное право оставаться анонимом, пока это позволяет функциональность данного ресурса. Ваши претензии, пожелания и предложения касательно данной функциональности просьба направлять администрации форума.
sergeiss
Прочитал "статью", прочитал тему...

Вот объясните, хоть у кого-нибудь появился вопрос о том, что изначально у автора статьи был написан неправильный код?

Зачем там делаются подряд 2 аякс-запроса? Почему их не объединили в один? Должно же быть "и ежу понятно", что даже без сессий один запрос быстрее будет обработан, чем два. Потому что кроме передачи собственно информации (объем котором будем считать одинаковым) существует еще и передача всяких заголовков + время на передачу всего этого безобразия тоже не нулевое. Поэтому в случае одного запроса накладные расходы будут меньше.

И судя по этому коду, можно предположить, что и в других частях проекта также неоптимальное что-нибудь имеется. Но вместо оптимизации кода ищутся костыли smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
twin
Цитата (MiksIr @ 19.08.2013 - 17:17)
У меня нет никаких заморочек с $_SESSION - я ей вообще не пользуюсь и считаю предназначенной лишь для начинающих программистов и для простых скриптов.

Если вы не осилили прочитать одну страницу форума, то специально для вас: в первой теме было предложено как вариант использовать неблокирующие хендлеры*. В этом случае мы потенциально получаем race condition, так как сессия читается при старте, и пишется в хранилище при остановке сессии (а так как этого никто не делает - то при остановке скрипта). $_SESSION['xxx']++ не приводит к записи в хранилище в момент выполнения.

Пример: два скрипта запущенные одновременно получат значение 5, сделают ++ и оба запишут 6. При том, что должно быть 7. Именно это - проблема работы с неблокирующим стораджем.

А ведь Guest прав на мой взгляд. Тут проблема не в блокировке сессий а в неверной архитектуре. Два скрипта не могут одновременно работать с одной сессией. Это возможно только при ассинхронных запросах, но тогда этим каатаклизмам подвержены данные в любых хранилищах. Допустм дв скрипта одновременно получают данные из БД, производят вычисления и пишут обратно. Результаты одного не будут учтены другим, как не блокируй хранилище.

Если все же существует потребность запустить два скрипта, стоит блокировать и ставить в очередь их, а вовсе не хранилище.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
sergeiss
Цитата (MiksIr @ 24.08.2013 - 18:01)
Причин на одновременные запросы могут быть сотни. Например, генерация картинок и JS файлов на сервере, когда браузер будет запрашивать их пачками...........

Много слов, много эмоций по всем абзацам. Но что я сказал не было понято. Как минимум тобой.
Я не разглагольствовал о том, чтобы все запросы объединять вместе. Но делать подряд два запроса внутри одной функции? Ясно дело, что оба они будут обращаться к сессии, при ее наличии. Это аналогично тому, что делать в цикле запросы к БД и потом удивляться, что всё долго обрабатывается.

Цитата (MiksIr @ 24.08.2013 - 18:01)
Не нужно проецировать свой 8-битный мир на всех остальных.

Уважаю самокритичных людей wink.gif

Цитата (MiksIr @ 24.08.2013 - 18:01)
По крайней мере человек открыл для себя то, что многие "профессиональные программисты php" и не знали.

Ты себя называешь таким программистом, который это и не знал, да?
Вообще-то, профессионалы обычно отличаются от нубов тем, что уж походили по многим граблям. И просто не делают ошибок, которые могут сделать новички.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
sergeiss
Предупреждение устное, первое и оно же последнее.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
sergeiss
Цитата (MiksIr @ 24.08.2013 - 20:47)
По делу то что будет?

По делу я написал ранее в этой теме.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.