Реализация многопоточности при парсинге сообщества Вконтакте.

Meteorburn

Client
Регистрация
23.05.2016
Сообщения
1 472
Благодарностей
575
Баллы
113
Приветствую!
Пишу парсер контактов подписчиков сообществ(а).
Сейчас реализовал многопоток парсинг 1 сообщества - 1 аккаунтом. Но желаю организовать парсинг 1 сообщества множеством аккаунтов. Допустим 1-й поток (аккаунт) берёт смещение по подписчикам на 200, 2-й поток (аккаунт) делает проверку значения смещения и берёт уже на 400 итд.

Какое решение вижу?
Значение смещения (offset) инициализируетя, как глобальная переменная и каждый цикл к значению смещения (offset) добавляется +200. В теории каждый поток (аккаунт) будет брать уже других подписчиков, чем соседний. В теории вроде верно, а как на практике?

А если таких 100 потоков, Зенно будет успевать обрабатывать каждый поток и выдавать нужное значение смещения?

Возможно есть какое-либо оптимальное решение по организации парсинга многопотоком?
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Приветствую!
Пишу парсер контактов подписчиков сообществ(а).
Сейчас реализовал многопоток парсинг 1 сообщества - 1 аккаунтом. Но желаю организовать парсинг 1 сообщества множеством аккаунтов. Допустим 1-й поток (аккаунт) берёт смещение по подписчикам на 200, 2-й поток (аккаунт) делает проверку значения смещения и берёт уже на 400 итд.

Какое решение вижу?
Значение смещения (offset) инициализируетя, как глобальная переменная и каждый цикл к значению смещения (offset) добавляется +200. В теории каждый поток (аккаунт) будет брать уже других подписчиков, чем соседний. В теории вроде верно, а как на практике?

А если таких 100 потоков, Зенно будет успевать обрабатывать каждый поток и выдавать нужное значение смещения?

Возможно есть какое-либо оптимальное решение по организации парсинга многопотоком?
Лучше через файл синхронизировать чем через глобальные переменные, если вдруг надо прервать проект, то достаточно удалить файл, а не перегружать целиком постер.
А так верно, только при этом надо не забывать делать блокировку перед чтением, и снимать после записи, иначе могут быть невеселые казусы.
Или если делаете на кубиках, то создавайте сразу файл с офсетами по 200, например, на сколько там может быть мемберов, загоните его в список, и берите из него с удалением строки, как только людей нет по офсетам, создаем новый где говорим что все приплыли, или еще как-то даем знать потокам что закругляемся.
 
Последнее редактирование:

Meteorburn

Client
Регистрация
23.05.2016
Сообщения
1 472
Благодарностей
575
Баллы
113
Лучше через файл синхронизировать чем через глобальные переменные, если вдруг надо прервать проект, то достаточно удалить файл, а не перегружать целиком постер.
А так верно, только при этом надо не забывать делать блокировку перед чтением, и снимать после записи, иначе могут быть невеселые казусы.
Или если делаете на кубиках, то создавайте сразу файл с офсетами по 200, например, на сколько там может быть мемберов, загоните его в список, и берите из него с удалением строки, как только людей нет по офсетам, создаем новый где говорим что все приплыли, или еще как-то даем знать потокам что закругляемся.
Что-то я не совсем понимаю, как и зачем делать это через файлы? И как блок делать?
Я только недавно стал изучать зеннопостер)
Прощу помощи)
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Что-то я не совсем понимаю, как и зачем делать это через файлы? И как блок делать?
Я только недавно стал изучать зеннопостер)
Прощу помощи)
Возьмите курсы по зеннопостеру посмотрите, пересказывать самые азы смысла не вижу.
 

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