Как реализовать многопоточность?
-
На входе у меня урл сайта с которого надо спарсить все урлы его внутренних страниц. Потом зайти на них и скопировать их в соцсеть.
Как реализовать в таком случае многопоточность если использовать один скрипт?
Я пока что додумался только к реализации в 2 подхода, первый скрипт в один поток парсит урлы внутренних страниц, и записывает их в список, а второй скрипт уже постит в несколько потоков.
-
Короче, я так понял можно в OnApplicationStart сделать функцию парсинга в один поток, после чего данные с урлами записать в список, а потому уже брать их в несколько потоков в основном теле скрипта, я правильно понял? Может еще какие варианты кто предложит?
-
@Samael_96 Самый простой. Первый поток парсит урл со всех страниц и записывает в ресурс, остальные потоки разгребают этот ресурс.
Ресурс создается в OnApplicationStart.Запись в ресурс - действие "Добавить Элемент"
Создание ресурса - "Создать Ресурс"
По окончании работы первого потока его можно убить действием Fail с параметром "Не перезапускать поток."
Действие "Номер потока" может получать номер треда.В будущем запланированы этапы выполнения. Для этого скрипта можно будет сделать 2 этапа и указать каждому свое количество потоков. Но такая реализация все равно самая быстрая, так как первый и второй этап работают одновременно.