@y_o_l_k_i_n___e_g_o_r

Как сделать чтобы массовая рассылка была мгновенной?

Вечер добрый, харбчане.
Встал вопрос. Отправляю в боте через библиотеку vk_api массовую рассылку примерно на 400 человек. В это время бот лагает и не отвечает на другие сообщения. Просветите, как сделать рассылку мгновенной и чтобы во время рассылки бот отвечал на другие сообщения?

Код отправки сообщений:
async def send_message(event, text='', keyboard=None,
                       user_id=None,
                       attachment=None):  # функция отправки сообщений
    if user_id is None:
        user_id = event.user_id
    try:
        vk.messages.send(
            user_id=user_id,
            message=text,
            random_id=0,
            keyboard=keyboard,
            attachment=attachment
        )
        return True
    except:
        return False

--
Код рассылки:
users = database.execute(f'SELECT user_id FROM users').fetchall()

                            for i in users:
                                await send_message(event, text, keyboard=commands_keyboard.get_keyboard(), user_id=i[0])


Заранее спасибо за ответ
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 2
ScriptKiddo
@ScriptKiddo
vk_api - синхронная библиотека, в ней есть возможность ограничения частоты отправки сообщений, чтобы не попадать под ограничения VK в 3 вызова API в секунду

https://github.com/python273/vk_api/blob/a4d26e2a6...

Поэтому все и тормозит, потому что time.sleep() блокирует выполнение асинхронной программы.

Используйте асинхронную библиотеку aiovk - это избавит от "лагов" бота при рассылке
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
Возьмите сервер на ядер побольше и проксей и шлите параллельно свой спам
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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