понедельник, 12 января 2009 г.

Задачка

Для дома =)
Исходные данные: есть несколько серверов, с которых можно качать одновременно (те самые dsv.data.cod.ru, dsv2.data.cod.ru, ftp82-84). Обычно качается это дело wget'ом. Чего хотелось бы: сервер, который бы занимался сортировкой и постановкой ссылок в очередь. Соответственно для каждого источника - своя очередь. Доступ: через web-интерфейс. Ссылки для data.cod могут выглядеть как :
  1. http://dsv.data.cod.ru/xxxxxxxx
  2. http://dsv.data.cod.ru/xxxxxxxx?submit=1
  3. dsv.data.cod.ru/xxxxxxxx
  4. dsv.data.cod.ru/xxxxxxxx?submit=1
Где xxxxxxxx - восьмизначное число. Причем ссылки вида 1, 3 и 4 должны приводиться к виду 2. Хотелось бы иметь группы ссылок (ну, например, если качается фильм, то он, обычно, разбит на несколько архивов, которые хотелось бы скачать друг за другом). Так же, возможно, приоритет (ну то есть, если я знаю, что эта ссылка на файл малого размера, то хотелось бы, чтобы он скачался следующим, а не попал в конец очереди). Циклический перезапуск ссылок, при ошибках связи.
В web-интерфейсе хочется иметь всего 2 страницы: одна для добавления новых ссылок(не забываем о группах), другая для статистики: отображение ссылок в очереди для кажого источника (возможно с небольшим описанием).
Чего хочу от вас? Предлагайте ЯП для реализации. Желательно с примерным сроками выполнения задачи и причинами выбора ЯП для этой задачи. Знаю, что это я охренел, но просто я решил спросить совета.
з.ы. PHP не предлагать :P

2 комментария:

  1. О. Это животрепещущий вопрос. Я тоже задумывался над такой штукой, но дальше шелл-скриптов не ушёл. Лень было :-)
    А ЯП... Насколько я понимаю, основная задача — сожрать ссылки, натравить на них wget, а потом ждать и поплёвывать в потолок, генерируя по запросу страничку. Ну и там еще проверять всякое по ходу дела. Perl или Python, имхо, вполне подойдут.

    >>Желательно с примерным временем выполнения

    Не совсем понял. Если ты таки про время работы программы, то я, честно говоря, не вижу тут каких-то сильно сложных/длинных задач, которые могут долго выполняться. Ы?

    ОтветитьУдалить