Marylin.ru

Мобильная связь
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Тайм аут загрузки видео

Большой тайм-аут загрузки и обработки видео

Я работаю над приложением rails, где пользователи загружают несколько видеороликов. Apache с пассажиром — мой сервер. Видео может быть размером 500 МБ или 1 ГБ. После загрузки видео он преобразуется в mp4 и воспроизводится.

Я использую https://github.com/valums/file-uploader для загрузки файлов. Благодаря этому я могу легко загрузить видеофайл размером 500 МБ. Я хочу отобразить предварительный просмотр mp4 видео, как только загрузка будет завершена. Я использую ffmpeg для обработки конвертирования видео в mp4. Это преобразование может занять несколько минут 10+ несколько раз, а мой запрос истекает через 5 минут из-за таймаута по умолчанию для Apache.

Итак, проблема в том, что загрузка ajax сохраняет запрос только до 5 минут после завершения загрузки. Мне нужен запрос, чтобы остаться в живых примерно через 10-20 минут после завершения загрузки файла. Было бы замечательно знать, если будут доступны другие решения на основе javascipt, чтобы сохранить этот запрос до тех пор, пока обработка видео не завершится, и пользователь может просмотреть предварительный просмотр.

Сохранение запроса блокировки до перекодирования видео может обременять ваши серверы. Большинство серверов могут одновременно обрабатывать 40-80 одновременных запросов, в зависимости от объема памяти вашего стека Rails, установленных камней и настроек сервера Apache. Если вы разрешаете 10-минутные запросы, это означает, что 40 пользователей, которые одновременно загружают, могут снять вашу услугу.

Мое предложение использует Ajax для опроса вашего сервера Rails каждые несколько секунд, если задание выполняется транскодированием. Если это так, вы можете обновить страницу или добавить еще несколько javascript, чтобы активировать воспроизведение видео.

Другое подобное решение может использовать стороннюю службу, такую как Pusher или PubNub, которые позволяют браузерам поддерживать постоянное соединение, а затем позволяют серверу Rails уведомлять клиентов после запуска события. Push-сервисы, подобные этим, обычно используют Node.Js для лучшей асинхронной обработки и одновременного подключения многих открытых соединений.

Третьим вариантом было бы переключить Apache на Puma и использовать Rails новые потоковые API. Puma лучше подходит для обработки параллелизма.

Есть ли тайм-аут WGET?

Я запускаю PHP-скрипт через cron с помощью Wget, со следующей командой:

скрипт займет максимум 5-6 минут, чтобы выполнить его обработку. Будет ли WGet ждать его и давать ему столько времени, сколько ему нужно, или это тайм-аут?

4 ответов

по данным man-страница wget, есть несколько вариантов, связанных с тайм-аутами — и есть тайм-аут чтения по умолчанию 900s — поэтому я говорю, что да, это может тайм-аут.

Вот варианты, о которых идет речь:

установите тайм-аут сети в секундах считанные секунды. Это эквивалентно указание —dns-timeout , —connect-timeout , и —read-timeout , все в то же время.

И для тех три варианта :

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

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

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

Я полагаю, используя что-то вроде

Читать еще:  Вставить текст в видео онлайн

должен убедиться, что нет тайм-аута раньше, чем продолжительность вашего сценария.

(Да, это, вероятно, самое жестокое возможное решение^^)

тайм-аут по умолчанию составляет 900 секунд. Можно указать другой тайм-аут.

по умолчанию повторите 20 раз. Можно указать различные попытки.

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

таким образом, даже если wget завершается, скрипт PHP продолжает обрабатываться, по крайней мере, до тех пор, пока он не превысит max_execution_time limit (директива ini: 30 секунд по умолчанию).

по состоянию на wget anyay вы не должны изменять свой тайм-аут,согласно руководству UNIX тайм-аут wget по умолчанию составляет 900 секунд (15 минут), whis намного больше, чем 5-6 минут, которые вам нужны.

до версии 1.14 аргументы таймаута wget не соблюдались, если загрузка по https из-за ошибка.

Большой тайм-аут загрузки и обработки видео

Я работаю над приложением rails, где пользователи загружают некоторые видео. Apache с пассажиром-это мой сервер. Видео может быть размером до 500 Мб или 1 GB. После загрузки видео оно преобразуется в mp4 и играл.

Я использую https://github.com/valums/file-uploader для загрузки файлов. С помощью этого я могу легко загрузить видео размером до 500 МБ. Я хочу отобразить предварительный просмотр видео mp4, как только загрузка будет завершена. Я использую ffmpeg для обработки преобразования видео в mp4. Это преобразование может занять до 10+ минут несколько раз, и мой запрос истекает через 5 минут из-за таймаута по умолчанию apache.

Таким образом, проблема здесь заключается в том, что загрузка ajax сохраняет запрос живым только до 5 минут после завершения загрузки. Мне нужен запрос, чтобы остаться в живых в течение примерно 10-20 минут после завершения загрузки файла. Было бы здорово знать, если какие-либо другие решения на основе javascipt доступны, чтобы сохранить этот запрос живым, пока обработка видео не завершится, и предварительный просмотр может быть показан пользователю.

Читать еще:  Тик ток посмотреть видео

3 Ответа

Сохранение запроса на блокировку до тех пор, пока видео не будет перекодировано, может обременить ваши серверы. Большинство серверов могут одновременно обрабатывать 40-80 параллельный запрос, в зависимости от объема памяти вашего стека Rails, установленных gems и настроек сервера Apache. Если вы разрешаете 10-минутные запросы, это означает, что 40 пользователей, которые загружают одновременно, могут отключить ваш сервис.

Мое предложение — использовать Ajax для опроса вашего сервера Rails каждые несколько секунд, если работа выполнена перекодированием. Если это так, вы можете обновить страницу или добавить еще javascript для инициализации воспроизведения видео.

Другое подобное решение может использовать стороннюю службу, такую как Pusher или PubNub , которая позволяет браузерам поддерживать постоянное соединение, а затем позволяет вашему серверу Rails уведомлять клиентов после запуска события. Push-сервисы, подобные этим, обычно используют Node.Js для лучшей асинхронной обработки и одновременного обслуживания многих открытых соединений.

Третий вариант-переключить Apache на Puma и использовать Rails new streaming APIs . Пума лучше подходит для обработки параллелизма.

Это звучит как директива конфигурации Apache (KeepAliveTimeout и TimeOut).

KeepAliveTimeout 1200 # 60sec * 20 min

Альтернатива: вы можете изменить свой JS / AJAX для повторного запроса каждые 2 минуты., и проверить, существует ли предварительный просмотр еще или нет?

Два параметра tomcat (ATTENTION! Доступно только после Tomcat 7.0) позволяет сохранить сеанс в рабочем состоянии во время выполнения запроса. Кроме того, только после завершения запроса тайм-аут сеанса снова начнет отсчет:

Вы можете установить оба в server.xml или передать их через JAVA_OPTS:

Похожие вопросы:

Как увеличить тайм-аут транзакции? Я хочу загрузить видео, но большой размер видео не загружается? Он выдает ошибку The process *** exceeded the timeout of 60 seconds.

Каков тайм-аут по умолчанию, который HtmlUnitDriver использует при ожидании загрузки страницы? Какие функции в HtmlUnitDriver API я могу вызвать, чтобы получить значение тайм-аута? HtmlUnitDriver h.

Тайм аут загрузки видео

Профиль | Отправить PM | Цитировать

ДА ТАКАЯ ТЕМА УЖЕ ЕСТЬ! НО.
Начитавшись информации по-поводу этого злосчастного списка загрузки везде где только можно (в том числе и на Вашем сайте), все равно НЕ МОГУ ЕГО УДАЛИТЬ!

В сети популярны 3 вида решения проблемы:
1. «Пуск» — «Выполнить» — msconfig- Enter-вкладка «Загрузка».
Выбрать в поле списка запись о нужной операционной системе и нажать кнопку «Загружать по умолчанию». В результате выполненной операции справа от названия появится соответствующий комментарий.
Редактирование таймаута труда не составляет.
После выполнения всех действий — «Применить» и перезагрузиться.

Читать еще:  Как снимать видео в замедленной съемке

Все сделал в точности как сказано — НЕ ПОМОГАЕТ!
У меня там одна операционная система — Семерка и она «по умолчанию».
Изменяю таймаут на 1, 2, 3 секунды, все равно меню при загрузке отображается 30 секунд..

2. Пуск – «Панель управленияВсе элементы панели управленияСистема». Далее: «Дополнительные параметры системы» — «Дополнительно».
В рамке «Загрузка и восстановление» нажать кнопку «Параметры»
Дальше выставляем нужные параметры.

Выставляю одну единственную ОС — Семерку. Нажимаю таймаут: сначала ничего (о секунд), потом 1, 2 и т.д.

И опять НИКАКОГО результата!

3. С помощью bcdedit.exe.
В командной строке набираю bcdedit.
Выскакивает окно с разными настройками.
Меня интересует timeout, но там стоит 0 (ноль).

Ленивый кусок мяса

Сообщения: 1979
Благодарности: 721

Конфигурация компьютера
Материнская плата: Biostar B75MU3B
HDD: SSD CX400-256, HDD Hitachi HDS721010CLA330
Звук: Realtek ALC662
Монитор: BenQ 21.5″ GW2265HM
Прочее: Logitech K800, A4Tech X7 F2
Надо будет для чистоты эксперимента потестить на девственной Win 7. Только найти такую или проще сделать ее таковой.. »

Вчера купил комп, поставил Win 7 Ultimate SP1 (на столько девственную, что даже интерфейс был на английском ). Ну это не суть, автоматическое обновление помогло мне всё поставить на свои места (кстати здорово придумали, загружать любые доступные языковые пакеты, всего лишь отметив галочкой )

И возникла точно такая же проблема, как у автора темы
В «Управление дисками» всё было в порядке (сам себе же делал ), в msconfig так же числилась 1 ОС, в «Свойствах системы» (где выбор ОС и установка тайм-аутов) тоже как только и не ставил, по разному, и удалял тайм аут и ставил в 0, в 30, всяко. Система всё-равно показывала загрузочное меню и ждала ввода «Enter», что прям нереально раздражало

Проблема решилась сразу же после ввода команды, которую вы посоветовали автору темы:

Ссылка на основную публикацию
Adblock
detector