Pull to refresh

Comments 14

Вообще-то сие поведение PHP описано в документации. Как говорится, RTFM.
Описано-то оно описано… Вот только — где описано? На странице документации к session_write_close. Я вас уверяю, далеко не каждый (к сожалению) программист читает доку на каждую используемую функцию. В частности, человек, о котором я упомянул («товарищ пожаловался на точно такую же проблему») — довольно опытный PHP-программист, и его данная ситуация поставила в тупик, впрочем, как и меня поначалу. В мануале приведен пример с фреймсетами, у меня пример немного другой, но главное: я хотел описать симптомы неполадки и рецепт для их решения, чтобы некоторые люди подобные проблемы решили быстро — когда с ними столкнутся.
Да фиг с ним, с мануалом. Даже если данная фича не была бы описана в мане, имхо, несложно догадаться что происходит: сессия лежит в файле => если мы имеем 2+ конкурентных запроса от одного клиента, возникает вопрос: что что будет с данными сессии на момент завершения обоих запросов? Что происходит? Если файл данных сессии не лочится — есть риск возникновения конфликтов при сохранении данных в сессию. Следовательно файл сессии лочится на время работы скрипта. Делается тестовый стенд (два скрипта во фреймах со sleep(10000)), демонстрирующий наличие flock при работе с файлом сессии и ищется решение проблемы. Все же просто.
Что-то я не нахожу ни капли полезного смысла в ваших комментариях. Если вы все это знаете или можете логически/экспериментально вывести все, что нужно — этот топик просто не для вас. Он как раз для тех, кто, столкнувшись с подобной ситуацией, будет долго чесать репу и искать решение. И вообще, честно говоря, не понимаю, почему лично вы (если все, что здесь изложено, вам хорошо знакомо и, следовательно, неинтересно) — так оживленно комментируете :)
PS, так сказать: Топик-то в общем получил положительную оценку, так что, можно сказать, что я своей цели достиг ;)
Мдя!!!
ППЦ!!! Вот это архитектура! Я б Вас уволил за такое))
Это, простите, за какое такое? И где вы увидели хоть полслова об архитектуре?
Я не собираюсь вас обучать программированию и проектированию… как говорится, RTFM))) Это ж как надо извратиться, чтоб такую реализацию отдачи видео организовать) А про сессии Вы, наверное, вообще не вкурсе, для чего они используются и какие сэйв-хэндлеры существуют.
А я, заметьте, не просил обучать меня «программированию и проектированию». Тем более мне не нужно такое обучение от человека, который даже в элементарном вопросе не может сколько-нибудь осмысленно обосновать свою позицию. Я не вижу связи ваших комментариев с моим постом. Потрудитесь высказать свою точку зрения более подробно:

1. Что вам не понравилось в реализации отдачи видео? (кстати, в посте ее, родимой, — реализации-то — нетути. Вы ктулху и сейчас едите мой мозг? )
2. Из чего вы заключаете, что «про сессии Вы, наверное, вообще не вкурсе, для чего они используются»?
3. Каким боком вы планируете увязать с моим постом фразу про сэйв-хэндлеры?
Отвечу просто… Ваша реализация отдачи видео НЕ должна быть завязана на сессии определенного клиента. Эта задача реализуется через отдельный независимый сервис.
Ого. Оказывается, вы знаете лучше меня и тех, кто ставит мне задачи, — что должна, а что не должна делать реализация отдачи видео?

Интересно, интересно… Я уже говорил, однако, что «на сайте использовалась авторизация»… Так вот, по условиям задачи, авторизованные пользователи могут смотреть видео, а неавторизованные — не могут (умолчим про то, что авторизованные, допустим, могут смотреть одно видео и не могут смотреть другое). Итак, берем слова про сессию назад?

И кстати, где ответы на 2-й и третий вопросы?
Помимо прочего, вы просто «не въехали» в тему. В данном топике конкретная задача, которую выполняет скрипт — вообще не должна интересовать читателя, я написал про выдачу видео — просто чтобы дать реальный пример (и, да, в моем конкретно случае мы дествительно работали с видео). С тем же успехом можно было бы отправлять какие-то SOAP-запросы по сети, в общем, подойдет любое действие, которое требует существенных временных затрат.
Ну раз уж хабр начал спамить мой почтовый ящик сообщениями о Ваших ответах в этой ветке, я продолжу) К Вашему сведению, есть более надежные, проверенные на высокой нагрузке способы отдачи видео как для авторизованых пользователей, так и не для авторизованых, включа уровни доступа к ОПРЕДЕЛЕННЫМ роликам (ну или допустим фотографиям). Они (способы) просто ОБЯЗАНЫ быть реализованными без PHP в связке с сессиями. Сессии тут абсолютно не причем.
Назовите мне хоть один известный проект, в котором используется PHP(или любой другой интерпретируемый язык)+сессии для отдачи видео таким способом? Да Вы просто их не назовете)
О Великий! Вы снизошли до моего уровня и продолжили!

К вашему сведению, на определенных уровнях нагрузки проекту абсолютно нет дела до того, кто там в нем отдает видео-контент :) В моем случае решение на PHP было очевидно самым простым.

Если бы вы потрудились прочитать статью о видео, ссылку на которую я привел в этом посте, вы бы знали, что мне известно о других способах «отдачи» видео.

Но вот вы говорите очевидную чушь: «Они (способы) просто ОБЯЗАНЫ быть реализованными без PHP в связке с сессиями». Это, скажите, перед кем обязаны? Чем вам PHP не угодил, если он прекрасно справляется со своей задачей? Чем вам сессии не нравятся? Если в проекте используются PHP-сессии — очевидно, что и для проверки прав доступа к видео-контенту удобнее всего использовать эти самые сессии.

Никаких «известных проектов, в которых используется PHP для отдачи видео», само собой, нет и быть не может. Но не забывайте о других проектах, с посещаемостью не миллионы, скажем, а всего лишь пару-тройку сотен тысяч хитов и меньше: представьте себе, там тоже иногда нужно видео! И вот незадача — PHP здесь великолепно справится и усом не поведет!

Вдобавок, вернусь к своему предыдущему комментарию и не поленюсь процитировать:

«вы просто «не въехали» в тему. В данном топике конкретная задача, которую выполняет скрипт — вообще не должна интересовать читателя, я написал про выдачу видео — просто чтобы дать реальный пример (и, да, в моем конкретно случае мы дествительно работали с видео). С тем же успехом можно было бы отправлять какие-то SOAP-запросы по сети, в общем, подойдет любое действие, которое требует существенных временных затрат»
Sign up to leave a comment.

Articles