- Регистрация
- 17.05.2014
- Сообщения
- 186
- Благодарностей
- 36
- Баллы
- 28
Вобщем ситуация такова - есть файл с кучей эмейлов. Его должен юзать шаб зенно, когда нужна регистрация к примеру. Но также надо чтобы 1 шаб брал с общего списка только 1 эмейл. Т.е. когда шаб работае в многопотоке - то нужно чтобы 1-й поток брал мыло с общего файла, а все остальные юзали уже это мыло и к общему файлу не обращались.
Как это реализовано:
- есть уже готовый общий файл с мылами.
- файл для отдельного шаба создается самим шабом через сниппет с-шарп и вначале он пустой.
- также есть отдельный список именно для этого email
- и в списке и в таблице указано сохранять изменения в файл. Насколько я понял в таком случае список/таблица будет общим для всех потоков
- Скрипт доходит до места когда ему нужно мыло и смотрит в список - если там строк больше 1 (логин и пароль от мыла), то он юзает это мыло, если же в списке строк нет - то берется первая строка с удалением с таблицы (общего файла с мылами)
- эта строка разбивается на переменные и эти переменные сразу же записываются в список.
По логике должно быть так - первый поток посмотрел в писок - там пусто, взял строку таблицы, разбил по переменным, записал в список - пошел работать дальше. Второй поток (и остальные тоже) посмотрели в список - там уже есть строки. Поэтому они в таблице не идут и новые мыла оттуда не дергают, а используют то, что есть.
Но на практике у меня выходит, что берется 2 мыла из общего файла. Т.е. берется мыло первым потоком, заносится в список, но второй поток этих изменений не видит и опять лезет в таблицу.
3-й уже видит изменения нормально и работает как надо
З.Ы. Сорри за долгое вступление, но думал что списки/таблицы быстрее реагируют на изменения, чем прямаю запись/чтения с файла. Но на деле облом вышел (ну или я чего-то не досмотрел хотя пробовал и так и этак).
Тестовый шаб с траблом - http://rghost.ru/57197876. Во входящих настройках можно везде указать путь к файлику с мылами, этого хватит
Как это реализовано:
- есть уже готовый общий файл с мылами.
- файл для отдельного шаба создается самим шабом через сниппет с-шарп и вначале он пустой.
- также есть отдельный список именно для этого email
- и в списке и в таблице указано сохранять изменения в файл. Насколько я понял в таком случае список/таблица будет общим для всех потоков
- Скрипт доходит до места когда ему нужно мыло и смотрит в список - если там строк больше 1 (логин и пароль от мыла), то он юзает это мыло, если же в списке строк нет - то берется первая строка с удалением с таблицы (общего файла с мылами)
- эта строка разбивается на переменные и эти переменные сразу же записываются в список.
По логике должно быть так - первый поток посмотрел в писок - там пусто, взял строку таблицы, разбил по переменным, записал в список - пошел работать дальше. Второй поток (и остальные тоже) посмотрели в список - там уже есть строки. Поэтому они в таблице не идут и новые мыла оттуда не дергают, а используют то, что есть.
Но на практике у меня выходит, что берется 2 мыла из общего файла. Т.е. берется мыло первым потоком, заносится в список, но второй поток этих изменений не видит и опять лезет в таблицу.
3-й уже видит изменения нормально и работает как надо
З.Ы. Сорри за долгое вступление, но думал что списки/таблицы быстрее реагируют на изменения, чем прямаю запись/чтения с файла. Но на деле облом вышел (ну или я чего-то не досмотрел хотя пробовал и так и этак).
Тестовый шаб с траблом - http://rghost.ru/57197876. Во входящих настройках можно везде указать путь к файлику с мылами, этого хватит