Спам в многопотоке

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
Что то я запутался, может кто подскажет, как правильно написать проект для спама..
итак: есть файл с линками, которые нужно запостить, есть файл со списком ресурсов, куда нужно запостить и есть папка с готовыми профилями на каждый ресурс.
Все ресурсы на одной CMS, все поля и формы идентичны, поэтому есть проект постинга (написаный на гет-пост запросах) в который нужно только подставить профиль и ссылку для постига.
для однопоточного спама у меня проект(цикл), в котором берется строка из списка линков, и строка из списка ресурсов, все это передается в вложенный проект постинга.. работает норм, НО учитывая, что ресурсов в списке более 200, то сам постинг в однопотоке занимает около часа на один линк.
А если в списке линков 50.. более 2-х суток((

Нужно постить в многопотоке... но как???

пы.сы. постинг одного линка в 30 потоков занимает около 2-х минут
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 346
Благодарностей
5 435
Баллы
113
Очень быстрый и топорный вариант. Скопировать папки и запустить как отдельные проекты. Я не призываю к таким действиям, просто если реально горит и ответа пока нет, можно так попробовать. Но ресурсы будут затрачены не малые.
 

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
Очень быстрый и топорный вариант. Скопировать папки и запустить как отдельные проекты. Я не призываю к таким действиям, просто если реально горит и ответа пока нет, можно так попробовать. Но ресурсы будут затрачены не малые.
нее неподойдет .. ибо этот проект должен работать в бААльшом комбайне из кучи других проектов ... комп вздернется ...
 
  • Спасибо
Реакции: Mikhail B.

Lite

Client
Регистрация
17.10.2013
Сообщения
283
Благодарностей
89
Баллы
28
Если я правильно понял - можно ведь брать строку с удалением из файла. Каждый поток будет брать уникальную строку.
 

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
Если я правильно понял - можно ведь брать строку с удалением из файла. Каждый поток будет брать уникальную строку.
не совсем правильно.. предположим, первый поток возьмет первую строку из списка links, второй вторую и т.д .. Но нужно, что бы все потоки запостили и первую строку.. и вторую .. и третью... и т.д.
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 346
Благодарностей
5 435
Баллы
113
blud В одном из уроков Ростоникса из 1 потока, была тема про много поток, там предлагался C# код, который проверяет не используется ли список в данный момент одним из потоков, и если это так, то он выжидает, пока он будет доступен.
Если честно, я сам присоединяюсь к вопросу. Интересно какие подводные камни стоит учесть при использовании многопотока. Я даже логически не понимаю как его делать, пока стандарта нету, как будет, более интенсивно займусь вопросом этим.
------------------
Если я правильно понял - можно ведь брать строку с удалением из файла. Каждый поток будет брать уникальную строку.
Если шаб одновременно возьмет эту строку с удалением, что будет тогда?
 
Последнее редактирование:

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
есть мысль использовать запуск шаблона бат файлом .. и сразу несколько вопросов:
1. Есть ли в зенно возможность передать переменную из проекта в проект?
2. Можно ли в настройках бат файла указать количество потоков?
 

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
Если шаб одновременно возьмет эту строку с удалением, что будет тогда?
если брать строку с удалением из списка, то одновременно одну и ту же строку потоки брать не будут .. список это типа контроллер при многопотоке
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 346
Благодарностей
5 435
Баллы
113
1. Есть ли в зенно возможность передать переменную из проекта в проект?
Для этого глобальные переменные существуют.
Можно запустить проект в проекте с передачей всех значений переменных.
 

Lite

Client
Регистрация
17.10.2013
Сообщения
283
Благодарностей
89
Баллы
28
не совсем правильно.. предположим, первый поток возьмет первую строку из списка links, второй вторую и т.д .. Но нужно, что бы все потоки запостили и первую строку.. и вторую .. и третью... и т.д.
Тогда из списка links строки не удалять, удалять только из списка ресурсов.
Т.е. поток берет профиль ресурса, список links и прогоняет его.
 

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
Для этого глобальные переменные существуют.
Можно запустить проект в проекте с передачей всех значений переменных.
ВИКИ: глобальная переменная создается, когда ваш проект первый раз к ней обращается. А ее значение пропадает после перезагрузки ZennoPoster.
 
  • Спасибо
Реакции: Mikhail B.

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
Тогда из списка links строки не удалять, удалять только из списка ресурсов.
Т.е. поток берет профиль ресурса, список links и прогоняет его.
это все хорошо при однопоточном постинге, при выполнении цикла, а как это все реализовать при многопотоке?
 

Lite

Client
Регистрация
17.10.2013
Сообщения
283
Благодарностей
89
Баллы
28
это все хорошо при однопоточном постинге, при выполнении цикла, а как это все реализовать при многопотоке?
Имеем 2 списка - линков и ресурсов.
Поток берет строку из списка ресурсов, удаляет её из файла и циклом берет строки из списка линков.
Тогда количество потоков=количеству ресурсов. (но в пределах одного ресурса постинг идет в один поток)
 

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
Имеем 2 списка - линков и ресурсов.
Поток берет строку из списка ресурсов, удаляет её из файла и циклом берет строки из списка линков.
Тогда количество потоков=количеству ресурсов. (но в пределах одного ресурса постинг идет в один поток)
а как брать строки из списка links?? если без удаления из списка, то постить будет один и тот же линк.. если с удалением, то соседний поток тоже будет брать из этого же списка....
 

Lite

Client
Регистрация
17.10.2013
Сообщения
283
Благодарностей
89
Баллы
28
а как брать строки из списка links?? если без удаления из списка, то постить будет один и тот же линк.. если с удалением, то соседний поток тоже будет брать из этого же списка....
Если ты не удаляешь из файла, то удаление строки из списка не действует на другие проекты.

p.s. еще вариант-
поток берет строку с ресурсом (с удалением из файла), проверяет наличие файла link-имяресурса.txt(например link-vk.com.txt), если нет - создает такой файл с содержимым из link.txt, если файл есть - берет оттуда строку (с удалением из файла).
Так можно постить многопоточно и в пределах одного ресурса.
 

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
Если ты не удаляешь из файла, то удаление строки из списка не действует на другие проекты.
Какие другие проекты?? речь идет об одном проекте, но работающем в несколько(30-50) потоков
 

Lite

Client
Регистрация
17.10.2013
Сообщения
283
Благодарностей
89
Баллы
28

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
ну я имел ввиду потоки)
вот если честно .. то не понял, как запускать цикличный шаблон в многопотоке... какие настройки в постере ставить?? я имею ввиду сколько раз выполнять?? ведь если это цикл, то он должен выполняться один раз... а если один раз.. то какая в3.14zду многопоточность....
 

shved2

Client
Регистрация
16.07.2015
Сообщения
146
Благодарностей
53
Баллы
28
А если сделать так:
шаблон берет одну строку из ресурсов с удалением.
далее перемещает(копирует) список линков в другой файл и постит линки из этого созданного файла с удалением.
по окончанию линков, новый файл с линками удаляется.
Таким образом имеем - для каждого потока свой файл с линками.
 

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
А если сделать так:
шаблон берет одну строку из ресурсов с удалением.
далее перемещает(копирует) список линков в другой файл и постит линки из этого созданного файла с удалением.
по окончанию линков, новый файл с линками удаляется.
Таким образом имеем - для каждого потока свой файл с линками.
тогда нужно, что бы имя файла, куда копируем список линков, было индивидуальным для каждого потока ..
 

shved2

Client
Регистрация
16.07.2015
Сообщения
146
Благодарностей
53
Баллы
28
тогда нужно, что бы имя файла, куда копируем список линков, было индивидуальным для каждого потока ..
а в чем трудность? рандомом генеришь имя и все.
 
  • Спасибо
Реакции: blud

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28

IgorSush

Client
Регистрация
11.02.2016
Сообщения
311
Благодарностей
108
Баллы
43
Базы данных вам в помощь.
На файлах многопоток - это как вилкой огород перекапывать! Пластиковой.
 
  • Спасибо
Реакции: shved2

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28

shved2

Client
Регистрация
16.07.2015
Сообщения
146
Благодарностей
53
Баллы
28
Базы данных вам в помощь.
На файлах многопоток - это как вилкой огород перекапывать! Пластиковой.
если в mysql разобраться - то да, проще.
Да и с файлами работать можно.
 

IgorSush

Client
Регистрация
11.02.2016
Сообщения
311
Благодарностей
108
Баллы
43

IgorSush

Client
Регистрация
11.02.2016
Сообщения
311
Благодарностей
108
Баллы
43
http://www.mysql.ru/faq/
Ваши старания по изучению сего окупятся стократ.

Без БД я многопоток вообще не стал бы рассматривать.
 

shved2

Client
Регистрация
16.07.2015
Сообщения
146
Благодарностей
53
Баллы
28
Никто не спорит, что можно. Можно и вилкой вскапывать:-)
Разобраться не так сложно.
Ну проекты разные - мне, например, для вк, бд не нужно - и со списками норм спамится...
смотря какие проекты и какая реализация...
а так - да, бд, конечно проще.
 

SilverSun

Client
Регистрация
31.10.2013
Сообщения
172
Благодарностей
24
Баллы
18
а как брать строки из списка links?? если без удаления из списка, то постить будет один и тот же линк.. если с удалением, то соседний поток тоже будет брать из этого же списка....
Я бы создал один общий список из ресурсов, он будет одновременно контролирующим списком окончания проекта. К этому списку будут обращаться все потоки. А уже в самом проекте, линки, через экшен "положить в список", одноразово положить в виртуальный список и брать их от туда, пока они не закончатся и соответственно не обработается полностью один сайт.
 
  • Спасибо
Реакции: blud

blud

Client
Регистрация
19.04.2011
Сообщения
657
Благодарностей
77
Баллы
28
Я бы создал один общий список из ресурсов, он будет одновременно контролирующим списком окончания проекта. К этому списку будут обращаться все потоки. А уже в самом проекте, линки, через экшен "положить в список", одноразово положить в виртуальный список и брать их от туда, пока они не закончатся и соответственно не обработается полностью один сайт.
спасибо .. все работает норм
Только непонятен один момент: как я писал выше, этот шаблон должен работать в комбайне. То есть после 100% выполнения этого шаба должен запуститься следующий.. и мне неясно, как отловить этот момент. Думал, что при выходе(по красной ветке) из экшна "взять строку из списка ресурсов" поставить кубик с записью файла (маячка) и след шаб запускался бы при появлении этого файла, НО этот файл (маячок) будет записываться каждым из потоков... то есть след. шаблон запустится раньше, чем отработает этот ...
 

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