2015-09-08 2 views
0

У меня есть служба кодирования видео. Мои клиенты представляют несколько видео для кодирования. В настоящее время я кодирую их только в форме FIFO. Я хотел бы изменить его так, чтобы каждый клиент получал долю в моей службе.Алгоритм эффективного планирования работы

Я хотел бы рассмотреть следующие факторы:

1. FIFO - сначала для подачи задания имеет более высокий приоритет.
2. Если клиент подает большое количество видеороликов, я хотел бы снизить его приоритет.

У меня есть контроль над приоритетом клиентов путем установки атрибута из базы данных, но не над каждым видео. Как я могу больше контролировать все видео и планировать их эффективно?

PS: Я могу переделать базу данных, если необходимо.

+0

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

+0

Я использую облако AWS, я запускаю свои службы кодирования на фиксированное количество экземпляров ec2 (экономит затраты). Видео, которые присутствуют, необходимо закодировать в автономном режиме. Я могу масштабировать экземпляры ec2 по мере необходимости, но я думаю, что на данный момент это не нужно, поскольку у меня мало клиентов. Но я хотел бы иметь эффективный алгоритм для планирования задач. – user3288346

ответ

0

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

+0

Это умный. Но, в будущем, возможно, я хотел бы иметь другие параметры, такие как размер видео и т. Д. – user3288346

0

Вы можете вычислить стоимость кодирования (исходя из размера и/или качества) и разделить его на возраст запроса (время закрытия минус время выдачи запроса плюс некоторая константа демпфирования). Затем вы использовали этот счет для очередности запроса в порядке возрастания.

Клиент, требующий больших запросов, должен будет ждать обработки небольших запросов, но в итоге получит оценку, достаточно маленькую, чтобы быть запланированной.

Смежные вопросы