Как в параллельном цикле делать Get запросы по списку?

Dexio

Client
Регистрация
09.05.2014
Сообщения
1 254
Благодарностей
220
Баллы
63
Добрый день. Есть вот такой сниппет, он параллельно пингует домены.
А мне нужно аналогичное, только вместо пинга проверять GET запросом ответ сервера, с заданной задержкой на ответ, и сравнением ответа сервера по такой регулярке (?i)Арбуз|Картошка|Петрушка
И получается если регулярка не пустая( тоесть нашел что-то) -> то кладем в список Valid_domains

Это сложно реализуется?
Тоесть нужно прямо кодить или в смежных ветках эксперт может набросать быстро по доброте душевной?

Код:
var pinger = project.Lists["Valid_domains"];
var ClearDomains = project.Lists["domains_for_check"];

project.SendInfoToLog("Пингуем домены. Кол-во: " + ClearDomains.Count + " шт.", true);
    System.Threading.Tasks.Parallel.For(0, ClearDomains.Count, i => {
            string domain = ClearDomains[0];
            ClearDomains.RemoveAt(0);
            try
            {
                System.Net.NetworkInformation.Ping ping = new System.Net.NetworkInformation.Ping();
                System.Net.NetworkInformation.PingReply pingReply = ping.Send(domain);
                pinger.Add(domain);
            }

            catch
            {
                if (domain != "")
                {
                    project.SendInfoToLog("Домен "+ domain + " не отвечает", true);
                }
            }
           
            });
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
снова что ли ? ))))))))))))
 

Dexio

Client
Регистрация
09.05.2014
Сообщения
1 254
Благодарностей
220
Баллы
63
снова что ли ? ))))))))))))
Всмысле снова?)) Предыдущий вопрос успешно решился и чекер по пингу прекрасно работает. Теперь другая задача, просто оооочень понравились параллельные циклы. Стабильно и быстро работают.
Или не так понял?
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Всмысле снова?)) Предыдущий вопрос успешно решился и чекер по пингу прекрасно работает. Теперь другая задача, просто оооочень понравились параллельные циклы. Стабильно и быстро работают.
Или не так понял?
а тема типо другая, просто смотрю один и тот же код, подумал решил продублировать немного заменив тему
 

Dexio

Client
Регистрация
09.05.2014
Сообщения
1 254
Благодарностей
220
Баллы
63
а тема типо другая, просто смотрю один и тот же код, подумал решил продублировать немного заменив тему
Нет, там все решилось очень круто и работает. Оказывается одни кавычки не закрыть- и ВСЕ нафиг кубики не работают))). 3 часа жизни, которые не вернуть..

А код просто очень хорошо показывает принцип того, что хочу сделать, только с GET запросами.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Нет, там все решилось очень круто и работает. Оказывается одни кавычки не закрыть- и ВСЕ нафиг кубики не работают))). 3 часа жизни, которые не вернуть..

А код просто очень хорошо показывает принцип того, что хочу сделать, только с GET запросами.
вот поэтому лучше всегда увидеть ошибку в логе, чем тут экстрасенсорикой заниматься ))
 

Dexio

Client
Регистрация
09.05.2014
Сообщения
1 254
Благодарностей
220
Баллы
63
вот поэтому лучше всегда увидеть ошибку в логе, чем тут экстрасенсорикой заниматься ))
Я 3 часа ее там и искал). А тут Nord сходу в личку подсказал и чувство восторга не знало предела) Так что я бы не пренебрегал уникальным навыками экстрансенсорики у членов этого комьюнити)))
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Я 3 часа ее там и искал). А тут Nord сходу в личку подсказал и чувство восторга не знало предела) Так что я бы не пренебрегал уникальным навыками экстрансенсорики у членов этого комьюнити)))
а чё её там искать если код выдал ошибку в лог
ну видимо Nord знает этот кусок кода, поэтому я и писал, что если он мне не интересен то вслепую его распознавать нет смысла
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
я не работал с циклом параллели, но по идее, данный код может терять данные из-за такой работы со списком без локов
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
нет не потеряет, просто новый всегда создавай, а потом сохраняй куда надо
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
думаю, вероятность потерь всё же есть в тот момент, когда в какой-то момент какие-то две итерации возьмут одну и ту же строку
 

Dexio

Client
Регистрация
09.05.2014
Сообщения
1 254
Благодарностей
220
Баллы
63
думаю, вероятность потерь всё же есть в тот момент, когда в какой-то момент какие-то две итерации возьмут одну и ту же строку
Я проверял со списком 200к. Не потерялось ничего ничего и не продублирвоались результаты.

Ребят, а про GET запросы параллельные, кто-то может подсказать?):ah:
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
думаю, вероятность потерь всё же есть в тот момент, когда в какой-то момент какие-то две итерации возьмут одну и ту же строку
какую строку когда у тебя всегда даные например в новом листе, но даже я работая не с листом такого не встречал, ну тоже не могу сказать что прям обо всех ошибках могу знать, но факт есть фактом, так бы не использовал параллель если бы он приносил неудобства
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Я проверял со списком 200к. Не потерялось ничего ничего и не продублирвоались результаты.

Ребят, а про GET запросы параллельные, кто-то может подсказать?):ah:
я милионы паршу используя паралель а ты размениваешься на таких копейках ))
 

Dexio

Client
Регистрация
09.05.2014
Сообщения
1 254
Благодарностей
220
Баллы
63
я милионы паршу используя паралель а ты размениваешься на таких копейках ))
И до миллионов дойду!)) но хочу даже на небольших объемах начинать красиво и аккуратно.
Костылей в шаблонах за годы уже хватает.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
О каком новом листе речь? Там работа идёт с одним списком. Без лока сначала берется нулевая строка, потом нулевая удаляется. Я не говорю, что потеря данных будет непременно, но шанс ситуации возможен, когда две итерации возьмут одну и ту же 0 строку, а удалят две строки.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
вообщето там вообще нет взятия строки какой то определёной и тем более удаления
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
удалять при паралели ты просто это не осилишь, поэтому тгда проще создать глобальный буф диктонари в который не запишит дубль, а потом уже сохраняй качество которое ты напарсил
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
ну и вообще нах такой подход при паралели дёргать по индексу со списка
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)