Comments 13
Единственный вопрос: как все это добро обновлять?
Скачиваем обновлённую раздачу, выкладываем обновлённые файлы, запускаем импорт.
И если поправить всё так, как советует Borro, то импорт пройдёт гораздо быстрее :)
И если поправить всё так, как советует Borro, то импорт пройдёт гораздо быстрее :)
Чтобы не вставляло 6 часов надо:
Мой индексатор индексирует за 200 секунд в 4 потока. Правда я не использую mysql вообще, всё сделано с помощью sphinx'а и его xmlpipe2. Правда пока я не доделал выдергивание категорий/подкатегорий. Может на досуге доделаю, чтобы формировал php-массив и далее его нужно будет просто инклудить в код. Я считаю, что mysql для этого избыточна.
$model = Torrents::findOne(['forum_id' => $data[0], 'topic_id' => $data[2]]);
убрать за цикл и сделать полный фетч. Причем лучше без AR, массив должен состоять из ключей forum_id + '_' + topic_id, и значений true, например
$exists = []; while (($row = $reader->read()) { $exists[$row['forum_id '] . '_' . $row['topic_id']] = true; }
или просто сделайте уникальный ключ на forum_id + topic_id, а в insert добавьте ключикIGNORE
В основном цикле заменяетеif($model !== null) continue;
наif (isset($exists[$data[0] . '_' . $data[2]])) continue;
- После этого выкидываем вставку через AR и делаем опять же через DAO, причем вне цикла делаете prepare, а в цикле просто байндите значения.
if(!isset($data[0]) || !isset($data[1]) || !isset($data[2]) || !isset($data[3]) || !isset($data[4]) || !isset($data[5]) || !isset($data[6]))
нужно заменить наcount($data) > 1
, и проверятьif (!array_key_exists(6, $data)) { $data[6] = 0 }
Бывает, что у некоторых топиков не бывает даты.
- Старайтесь не делать лишних движений в большом цикле, поэтому стоит убрать все выводы на экран.
- В конфиге сфинкса используйте sql_query_range
Мой индексатор индексирует за 200 секунд в 4 потока. Правда я не использую mysql вообще, всё сделано с помощью sphinx'а и его xmlpipe2. Правда пока я не доделал выдергивание категорий/подкатегорий. Может на досуге доделаю, чтобы формировал php-массив и далее его нужно будет просто инклудить в код. Я считаю, что mysql для этого избыточна.
Идея понятна, благодарю.
Поэкспериментирую :)
Поэкспериментирую :)
Я считаю, что mysql для этого избыточна.
Для такой задачи и PHP избыточен. Дожили. Чтобы найти что-нибудь на rutracker, надо научиться поднимать LAMP. Решение с PHP непрактично ни в каком виде. А так, пользуюсь поиском по DHT прямо в клиенте qBittorrent, оттуда же начинаю воспроизведение видео потоком. Не знаю, ищет ли qBittorrent конкретно раздачи rutracker, но все популярное и почти все непопулярное (например, пиратские копии баз maxmind или пиратский КонсультантПлюс).
Я не делаю никаких реклам, просто привожу пример как «непопулярных» раздач.
На мой взгляд, тут не хватает интеграции с какой-нибудь качалкой, имеющей веб интерфейс типа transmission.
Еще, чтобы на смарт-тв работало. И воспроизводило видео без полной загрузки. Прямо как в Popcorntime
Хотелось бы обратиться к автору.
Этих magnet-хостинговвагон и тележка тысячи онлайном по всему миру. Все заблокировать в РФ не получится. И попросить удалить раздачу, например, с китайского трекера сложно, там местный админ не понимает ни русский ни английский.
На вашем месте, я бы потратил часть новогодних каникул на изучение node.js.
О Popcorn уже не раз писалось на хабре.
Если вам не все равно, адаптируйте пожалуйста туда нормальное отображение описания видео и рейтингов или даже поиск по рейтингам.
Поисковые провайдеры туда вроде как подключаются легко.
Этих magnet-хостингов
На вашем месте, я бы потратил часть новогодних каникул на изучение node.js.
О Popcorn уже не раз писалось на хабре.
Если вам не все равно, адаптируйте пожалуйста туда нормальное отображение описания видео и рейтингов или даже поиск по рейтингам.
Поисковые провайдеры туда вроде как подключаются легко.
а можно сделать стандартную виртуальную машину?
Only those users with full accounts are able to leave comments. Log in, please.
Собственный поиск по раздачам rutracker.org – реализация на Yii2