Как сделать, чтобы этот код работал правильно в многопотоке?

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
сам код в кубике можно так написать
C#:
StringBuilder sb = new StringBuilder();

lock(CommonCode.SyncObject)
{
    CommonCode.Parsing P = new CommonCode.Parsing(project.Variables["GetRespond"].Value, project.Variables["url"].Value, CommonCode.SRC, false, project.Lists["DoubleDomains_list"], project.Lists["Empty_list"]);
    
    foreach (string ss in P.Internal_list) sb.Append(ss + "\r\n");
}

project.Variables["ScriptResult"].Value = sb.ToString();
гнемного изменения сделать
2020-04-07_014323.png


и я так и не понял что даёт объедение в список, этот список даже не привязан ни к чему

2020-04-07_014517.png
 
  • Спасибо
Реакции: Светлана11422

Светлана11422

Новичок
Регистрация
04.07.2019
Сообщения
19
Благодарностей
2
Баллы
3
и я так и не понял что даёт объедение в список, этот список даже не привязан ни к чему
Это сделано для теста, чтобы видеть в логе как работает в многопотоке

так а куда всё это должно сохраняться ?
Мне нужно чтобы в переменную сохранялись эти все страницы, а потом уже из переменной в список сделаю или можно сразу в список. Главное чтобы в многопотоке работало
 

ssXXXss

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


Мне нужно чтобы в переменную сохранялись эти все страницы, а потом уже из переменной в список сделаю или можно сразу в список. Главное чтобы в многопотоке работало
тебе надо из последней переменной сохорантьб в список ? или сразу при обработке ? правильно понял ? сам код потомучто не буду разбирать, через чур много строк ))) я уже обленился ))
 
  • Спасибо
Реакции: Светлана11422

Светлана11422

Новичок
Регистрация
04.07.2019
Сообщения
19
Благодарностей
2
Баллы
3
тебе надо из последней переменной сохорантьб в список ? или сразу при обработке ? правильно понял ? сам код потомучто не буду разбирать, через чур много строк ))) я уже обленился ))
Из этой переменной
project.Variables["ScriptResult"].Value
Полученный результат, чтобы в список сохранял или сразу при обработке, это не столь важно
 

ssXXXss

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

2020-04-07_020503.png


PM

2020-04-07_020519.png


почти 2к строк, что больше должно быть ???

2020-04-07_020657.png
 
Последнее редактирование:

Светлана11422

Новичок
Регистрация
04.07.2019
Сообщения
19
Благодарностей
2
Баллы
3
всё работает норм, это зенопостр в 10 потоков\
У меня так работает в 10 потоков



А так в 1 поток



Почему-то при одновременной работе нескольких потоков правильно отрабатывает только один.
Сам код то выполняется нормально, но остальные потоки выводят пустые значения, а в один поток всё хорошо.
Вот и не понятно, как это исправить, даже если сразу в список сохранять, будет тоже самое, только один поток правильно работает
 

Светлана11422

Новичок
Регистрация
04.07.2019
Сообщения
19
Благодарностей
2
Баллы
3
почти 20к строк, что больше должно быть ???
Каждый поток должен сохранять данные взятого домена, а у меня пропускает в несколько потоков домены, а в один всё долго очень
 

ssXXXss

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



А так в 1 поток



Почему-то при одновременной работе нескольких потоков правильно отрабатывает только один.
Сам код то выполняется нормально, но остальные потоки выводят пустые значения, а в один поток всё хорошо.
Вот и не понятно, как это исправить, даже если сразу в список сохранять, будет тоже самое, только один поток правильно работает
пробуй, измени только в настройках путь
 

Вложения

  • 155 КБ Просмотры: 89

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
ну ещё можно добавить в код проверку, 6-я строка, выйдет по ошибке если в списке пусто, можешь там для себя оповещение вставить
2020-04-07_024530.png
 
  • Спасибо
Реакции: Светлана11422

Светлана11422

Новичок
Регистрация
04.07.2019
Сообщения
19
Благодарностей
2
Баллы
3
пробуй, измени только в настройках путь
Спасибо, но видимо у меня что-то не так, может что мешает работе, вообще не понимаю что ещё сделать

Вот результат теста:



Сколько бы потоков не было, всё равно один домен почему-то записывает
 

ssXXXss

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

Вот результат теста:



Сколько бы потоков не было, всё равно один домен почему-то записывает
тут уже тогда у себя разбирайся, как видишь по скринам всё работает, версия зенки какая ?
 

Светлана11422

Новичок
Регистрация
04.07.2019
Сообщения
19
Благодарностей
2
Баллы
3
ну ещё можно добавить в код проверку, 6-я строка, выйдет по ошибке если в списке пусто, можешь там для себя оповещение вставить
Вот так с добавлением этой строки в 10 потоков.




тут уже тогда у себя разбирайся, как видишь по скринам всё работает, версия зенки какая ?
7.0 версия

Спасибо, буду разбираться,может действительно дело в версии
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
вот твой код
C#:
CommonCode.Parsing P = new CommonCode.Parsing(project.Variables["GetRespond"].Value,
    project.Variables["url"].Value, CommonCode.SRC, false, project.Lists["DoubleDomains_list"], project.Lists["Empty_list"]);

if (P.Internal_list.Count() <= 0) return null;
FileSystem.FileAppendString(project.Directory + @"\Test.txt", string.Join("\r\n", P.Internal_list.ToList()), true);
результат в 16 потоков

2020-04-07_031539.png
 

ssXXXss

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

2020-04-07_031913.png



ну и в if при ошибке сделай запись в текстовик каждого потока, и посмотри что там, и уже потом смотри от чего оттвлкиваться после гет запроса, если нужного нет, то и парсить нет смысла а полставить например цикл с промежутком каким то временем, а там уже сама смотри какой цикл будет, 1, 2 и т.д или +100500

P.S. у меня 7.0.4 версия
 
Последнее редактирование:

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
можно ещё так коль с общим кодом дружишь
2020-04-07_040457.png

2020-04-07_035827.png

PM
2020-04-07_035922.png

результат
2020-04-07_040005.png
 
  • Спасибо
Реакции: Светлана11422

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