Apache / php блокирует один файл для одновременной обработки с одного и того же клиента? - PullRequest
1 голос
/ 18 декабря 2010

У меня все настроено и работает с KalturaCE & Drupak, и сервер (Ubuntu 8.02 + Apache2 + PHP5 + MySql) работает нормально. У меня проблема здесь не классифицирована.

Когда я играю вместе два видео со своего сайта, второе видео, которое я проиграл позже, не начинается, пока первое не завершит свою буферизацию. Я сделал несколько HTTP-наблюдений и узнал, что обе записи запрашивают файл с URL следующим образом:

/kalturace/p/1/sp/100/flvclipper/entry_id/xxxxxx/flavor/1/version/100000

поэтому первое видео, которое я воспроизвел, получает ответ перенаправления 302 на URL следующим образом:

/kalturace/p/1/sp/100/flvclipper/entry_id/xxxxxxx/flavor/1/version/100000/a.flv?novar=0

и начинает буферизацию и воспроизведение. В то время как второе видео, которое я начал позже, просто ждет ответа, пока первое видео не завершит свою буферизацию, а затем второе видео получает перенаправление 302 и начинает буферизацию

Мой вопрос: почему оба видео не могут одновременно буферизоваться? и, очевидно, это то, что мне нужно.

Ваша помощь весьма ожидаема и приветствуется.

Ответы [ 4 ]

1 голос
/ 19 января 2011

Я нашел решение своей проблемы, и, конечно, это было изначально предложено Марком, но это была и проблема с тайм-аутом mysql.

Так что решение session_write_close () в обоих файлах в нужных местах решеномоя проблема.

Для полного обзора, пожалуйста, посетите предложенную тему в http://www.kaltura.org/videos-not-playing-simultaneously-0

1 голос
/ 18 декабря 2010

Сеансы PHP на основе файлов будут блокировать файл сеанса, пока активен запрос. Если вы намереваетесь использовать параллельные запросы, подобные этому, вам нужно будет убедиться, что каждый скрипт закрывает сессию как можно скорее (т.е. после записи любых изменений) с помощью session_write_close(), чтобы свести время блокировки к минимуму.

0 голосов
/ 21 декабря 2010

Другое предложение, размещенное на http://drupal.org/node/1002144 по тому же вопросу -

Возможно, такое поведение может быть связано с блокировкой запроса mysql. Если SQL-запрос KalturaCE блокировал таблицу до тех пор, пока первый запрос не будет выполнен (у меня нет оснований полагать, что это так, просто плавающие возможные причины), тогда второй запрос может зависнуть следующим образом.

Я недостаточно знаком с CE, чтобы предположить, что это так, но вы могли бы легко отладить, используя mtop на сервере во время запроса, чтобы увидеть, действительно ли это происходит.

0 голосов
/ 21 декабря 2010

Я разместил несколько предложений на http://drupal.org/node/1002144 по одному и тому же вопросу, это одно из них:

В пространстве Apache возможной причиной может быть MaxClients (или способность вашего сервера Apache отвечать на несколько запросов). Если этот параметр apache или емкость сервера невелики, то сервер может отбрасывать ваши соединения в свой резерв, пока не будет установлено первое соединение. Вы можете проверить это, используя обычные большие файлы, загрузка которых на сервер занимает некоторое время - это позволит установить, является ли KalturaCE или Apache причиной проблемы. Чтобы увидеть это, вам понадобится либо сайт, который уже находится на максимуме для MaxClients (т.е. не неиспользуемый сайт разработчика), либо очень низкий параметр MaxClients (например, 1!).

...