@Nikolas Понял, думаю это на стороне пользователя уже должно решаться всё таки. Но в таком случае, ваш вариант с пингованием, наверное, самый простой и надежный
Как в конце каждого потока проверять "Результаты" на дубли, чтобы во время парсинга гугла в окне "Результаты" строки всегда были без повторов?
-
@Revers Какие именно данные ты хочешь видеть и для чего они тебе нужны? Количество спарсенных ссылок или сами ссылки, чтобы с ними работать?
То есть нажимаешь в любой момент "остановить скрипт мгновенно"
Если ты останавливаешь скрипт своими руками, то данные могут не записаться.
Я вообще сохранял данные в [[THREAD_INDEX]].txt, где THREAD_INDEX это номер потока. Каждый поток работал со своим файлом, а в админке я выводил уже все файлы вместе. Дублей при таком подходе не будет.
-
@Fox К примеру за день в "Результаты" набралось 6 лямов ссылок, иду в KeyWordKeeper и остаётся только 300к. А если я раз в неделю буду проверть на дубли то KeyWordKeeper не потянет такой файл. Вот мне и нужно как-то решить проблему, чтобы не нажимая "Остановить", в окне "Результаты" или в файле links.txt были только уник строки.
-
@Revers Во сколько потоков работает скрипт? Можно по разному сделать, в зависимости от условий работы скрипта. Например отдельной функцией читать файл
links.txtи удалить дубликаты. Либо перед добавлением в файл проверить, есть ли такая ссылка в файле, если нет, то добавить. С большими объёмами данных лучше работать в базе.
Если эти ссылки будет потом использовать другой скрипт, можно его настроить использовать эту же базу и работать сразу, одновременно. -
@Revers замените результат на ресурс, с галочкой только запись. Добавьте раз в определенное время очистку дублей, например, в скрипте можно получить количество успехов на данный момент, сделать в скрипте условие if, если количество успехов кратно 100 (переменная с количеством успехов % 100 == 0), то получать расположение ресурса, куда пишем результаты, читать файл в список, удалить дубли, записать список в файл с перезаписью (в экшене записи в файл не ставить галочку дописывать файл). Так же что бы не нагружать оперативку при добавлении результата в ресурс ставим галочки только добавить в файл/базу, а для того что бы результаты добавлялись в лайве, ставим галочку добавить в файл/базу мгновенно
-
@Revers с вашим объемом данных это будет ресурсоемко - нужно будет прочитать файл в список и проверить существование строки в списке.
П.с. небольшое примечание к моему способу выше - после того, как перезапишите файл, очистите переменную, в которую вы читали файл, это можно сделать действием установить переменную, например в значение 0, или выполнить код delete VAR_имя_переменной
, то будут дубли?
, то проверка, при сохранении на дубли , будет проходить на автомате при многопоточном парсинге?