leemour
@leemour
Ruby on Rails разработчик

Как эффективно вычислить новых/ушедших пользователей группы Вконтакте?

Мне необходимо иметь актуальные данные по новым и ушедшим пользователями из группы Вк. Работать буду с большим количеством групп.

Изначально я получаю id всех участников группы Вк и сохраняю в их БД отдельными записями в таблицу group_members c полями group_id, user_id.

Периодически я заново опрашиваю Вк, чтобы обновить информацию о пользователях. Проверять все id по одному - неэффективно. Я думаю о том, что можно сравнивать массив id с тем, что есть в БД, чтобы сначала найти тех, кого в БД нет (новые), а потом тех, кого нет в ответе ВК (ушедшие). Как лучше это сделать?

Т.к. люди постоянно приходят/уходят, то в массивах будут большие отклонения. Нужно ли их где-то хранить, если, например, имеем дело с группой с 10млн участников? Redis?

Как наиболее эффективно все это сделать?

Использую PostgreSQL, Ruby on Rails.

UPDATE
У вк есть метод execute, так что можно получать 25000 участников за раз. Сallback API, к сожалению, подключается только к моим сообществом, а я хочу мониторить конкурентов. Я понимаю, что надо будет купить прокси IP для быстроты.
  • Вопрос задан
  • 419 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Gromadchuk
Советую вам кардинально пересмотреть вашу систему учета пользователей. Получать пользователей на момент подключения группы также как и сейчас. А учет вести через Callback API, где подписаться на подписку\отписку от сообщества. Вам тогда не нужно будет периодически получать пользователей и сравнивать расхождения массивов. Вы будете получать конкретного пользователя в конкретный момент и узнавать отписался он или нет. Это упростит логику, даст точное время подписки\отписки, но тем самым сделает большую нагрузку на сервер, так как после каждого действия пользователя будет идти запрос на сервер.

31ff4854dc4344efa6d515683a655f4c.jpg
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы