пятница, 27 февраля 2009 г.

FlylinkDC++ r377 beta1

  • Отказ от хранения очереди закачек в файле *.xml
FlylinkDC-r377-svn1251-beta-1-build-27-Feb-2009_21_39.rar

FlylinkDC-r377-svn1251-beta-1-build-27-Feb-2009_21_39.rar


Данное решение не очень эффективно работает на больших очередях
в оригинальной реализации очередь хранится в памяти и периодически(раз в минуту) скидывается на диск в файл Queue.xml

пот этом работает следующий алгоритм
  • создается Queue.xml.tmp на основе текущего состояния очереди
  • удаляется файл Queue.xml.bak
  • копируется текущий Queue.xml в Queue.xml.bak
  • удаляется Queue.xml
  • копируется Queue.xml.tmp в Queue.xml
я перенес хранения очереди в базу данных и пока используется две таблички (fly_queue и fly_queue_source)

+ реализовал первое приближение работы "по новому".
просьба желающих потестировать это решение на предмет корректности работы.

Все старые закачки должны сохранятся и при первом запуске r377 beta1 переносятся из файла Queue.xml в БД. (больше файл Queue.xml не создается)

использования БД в качестве хранилища очереди также позволит исключить потерю очереди при сбоях программы

Позволю себе привести письмо с жалобами на очередь:

При скачивание папки с большим количеством фалов, размер Queue.xml разрастаться до больших размеров. Программа не в состоянии обработать такой размер xml и не в состоянии загрузить очередь скачивания и зависает(в полне возможно что и может,но ждать такое количество времени, я ждал больше часа и так список не открылся). Естественно просмотреть очередь скачивание в программе невозможно. Предлагаю при нажатии в контекстном меню пункта "Скачать" предупреждать пользователя о том что он добавляет большое количество файлов и не сможет в дальнейшем просматривать очередь скачивания. Или лучше вообще отказаться от xml в пользу Sqlite. Хотелось бы что бы проблема была решена. В моем случае я добавил на скачивании папку с видио и не заметил что подпапка содержит очень большое количество мелких файлов(причем список нужных мне закачек уже был достаточно большим), ждать когда загрузиться ненужные мне файлы, а это заняло бы приличное время мне не хотелось, то пришлось вручную удалить часть строк Queue.xml их было больше 80000 естественно я удалил и нужные мне закачки, выбирать нужные было просто нереально долго.

(с) http://svn.flylinkdc.ru/trac/ticket/1161

1 комментарий:

Анонимный комментирует...

Года полтора назад я попытался использовать FlylinkDC++ вместо оригинального клиента. При реструктуризации списка (очереди) закачек - перемещении папок из одной в другую - иерархия папок в списке нарушалась. Т.е. все файлы, на каком бы уровне вложенности они ни находились, переносились в корень нового места расположения. (В StrongDC++ иерархия папок переносится без изменений.)
Сохранилось ли подобное поведение программы в актуальной версии?