l3ftoverz
@l3ftoverz
Люблю Финский металкор

Чем делать очередь, что бы иметь возможность получить прогресс на фронтенде?

Дисклеймер: не нашёл нужных тегов.
В общем, у меня пока кастомный демон, суть его в том, что он конвертит видосы через ffmpeg \ достаёт аудиодорожку.
На данный момент на клиенте висит просто "Погоди чутка, ща всё буит", спиннер кароче.

Хочу иметь прогресс бар, но как тогда выстроить очереди, что бы оно как-то о прогрессе меня уведомляло? Что для этого используют? Есть какие-то готовые тулзы?
  • Вопрос задан
  • 371 просмотр
Решения вопроса 4
hzzzzl
@hzzzzl
нодовая обертка для ffmpeg бросает событие progress когда что-то происходит, вот его на фронт и слать через сокет или server-sent event

https://github.com/fluent-ffmpeg/node-fluent-ffmpeg
'progress': transcoding progress information
The progress event is emitted every time ffmpeg reports progress information........
Ответ написан
inoise
@inoise
Solutions Architect, AWS Certified, Serverless
готовых нет. Берем вебсокет и по нему уведомляем клиент по мере продвижения
Ответ написан
lazalu68
@lazalu68
Suspended ))
Вроде бы особо проблем не должно быть, тема уже поднималась на so. О готовом, к сожалению, не слышал.

ЗЫ: вот этот ответ вообще шикарный
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
Как пишут в доке к свежим версиям ffmpeg, параметром -progress можно указать url на который раз в секунду будут передаваться данные о прогрессе в виде строк key=value, последним параметром всегда идёт progress.

Очередь можно держать хоть в MySQL хоть в Redis.

Показывать будете число заданий перед «моим» и когда начнет рендерится «моё» - его % от 0 до 100? Или как-то сразу спрогнозировать, сколько будет считаться каждое из заданий перед моим?

Технически можно и поллить раз в секунду или реже, и websocket'ами держать связь (лучше).

Я бы сделал «прогноз», зависящий только от длительности и количества заданий в очереди. Нарисовал бар, который очень плавно ползёт, а при поступлении очередного уточнения с сервера, плавно корректируется под него – то слегка ускоряясь, то замедляясь, но в целом продолжая плавное движение.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы