Форум программистов, компьютерный форум, киберфорум
Python: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
4 / 4 / 0
Регистрация: 07.03.2019
Сообщений: 249
Telegram API

Отключение отдельного потока с bot.polling()

27.03.2023, 04:03. Показов 4028. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Подскажите, пожалуйста: Я запустил bot.polling() через отдельный поток с помощью threading

Python
1
2
3
4
import threading
 
proc_bot = threading.Thread(target=bot.polling)
proc_bot.start()
А как теперь этот поток остановить? Кучу статей в интернете пересмотрел, но ничего не работает (и с флагами, и с ивентами). Может, кто-то уже сталкивался с таким и знает, как этот поток приостановить или прервать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.03.2023, 04:03
Ответы с готовыми решениями:

Никак не получается запустить bot.polling
Пытаюсь разобраться с ботом телеграм, никак не получается запустить bot.polling(none_stop=True, interval = 0) в отдельном потоке(для того...

Падает чат-бот. Проблема с bot.polling()
Здравствуйте! При запуске кода для связи с чат-ботом в Telegram, возникла следующая проблема, которую не получается решить: ...

While True и Bot.Polling должны работать вместе
Добрый вечер! В поисках ответа на этот вопрос уже облазил весь интернет, но результатов нет, очень надеюсь что Вы сможете помочь! ...

24
4 / 4 / 0
Регистрация: 07.03.2019
Сообщений: 249
27.03.2023, 18:55  [ТС]
Студворк — интернет-сервис помощи студентам
kazak,Ага, спасибо. Правда что-то опять вернулась та старая ошибка, хотя я код вернул к тому состоянию, когда этой ошибки не было. Я завтра еще попробую по Вашим советам сделать. Если что - обязательно сообщу. В любом случае спасибо Вам!

Добавлено через 13 минут
Python
1
2
3
4
5
6
7
8
9
10
def proc_bot():
            threading.Thread(target=bot.polling, daemon=True).start()
            while True:
                time.sleep(1)
                if stop_thread is True:
                    bot.stop_polling()
 
 
        proc_bot1 = threading.Thread(target=proc_bot, daemon=True)
        proc_bot1.start()
У меня теперь и эта функция вызывает ошибку, связанную с тем, что я запускаю дважды бота (threaded=False - не помогает)
0
 Аватар для kazak
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,307
27.03.2023, 19:16
Цитата Сообщение от Fershtein Посмотреть сообщение
я запускаю дважды бота
Зачем? Собственно ошибка Error code: 409. приходит от телеги и говорит, что два бота не могут одновременно работать.
0
4 / 4 / 0
Регистрация: 07.03.2019
Сообщений: 249
27.03.2023, 23:46  [ТС]
kazak, Так я понимаю, что дважды бота я не могу запустить. Ну так вроде мы же завершаем поток с рабочим ботом? Разве этот бот уже не считается "отключенным"?
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
28.03.2023, 14:47
Fershtein, а ты ждешь пока бот полностью закончит все свои дела или моментально лупишь запуск второго? Учитывая что я нигде не вижу проверки, жив ли поток в данный момент и не вижу ожидания завершения текущих активных потоков, наверное так оно и есть.

Добавлено через 15 минут
Запусти у себя этот код и увидишь как долго закрывает соединение бот:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import time
import telebot
import threading
 
 
def print_with_time(message: str) -> None:
    print(f"[{time.time():.2f}] {message}")
 
 
bot = telebot.TeleBot("***")
 
print_with_time("Start thread bot.polling")
thread = threading.Thread(target=bot.polling)
thread.start()
 
print_with_time("Wait 5 seconds...")
time.sleep(5.0)
 
print_with_time("bot.stop_polling")
bot.stop_polling()
 
print_with_time("thread.join")
thread.join()
 
print_with_time("end")
Спойлер:
Кликните здесь для просмотра всего текста

[1680003853.51] Start thread bot.polling
[1680003853.51] Wait 5 seconds...
[1680003858.52] bot.stop_polling
[1680003858.52] thread.join
[1680003873.82] end


Добавлено через 2 минуты
P.S. Учитывая какую конструкцию ты написал в последних сообщениях, то в потоки тебе рано лезть в ботов тем более.
0
4 / 4 / 0
Регистрация: 07.03.2019
Сообщений: 249
29.03.2023, 04:46  [ТС]
Fudthhh, Спасибо за Ваш комментарий, обязательно приму к сведению!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.03.2023, 04:46
Помогаю со студенческими работами здесь

подскажите что такое long-polling и polling (COMET)
Привет.Знаком с AJAX, WEBSOCKETS,но не знаю что такое long-polling и polling. Подскажите примеры.Буду очень благодарен.

Изменение ImageView из отдельного потока
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

Скриншот формы из отдельного потока
Подскажите, нужно получить Form1 из другого потока, как изменять texbox'ы и т.д из потоков я знаю, а как получить Form1? Добавлено...

Доступ к SWING из отдельного потока
Привет. Прочитал массу инфы, но ответа так и не нашел/не понял. вот форма сгенерина в netbeans. Form.java public class Form...

Signal Slot из отдельного потока в основной
Доброго времени суток. Имеется QTreadPool. Имеется свой Runnable с методом run. Внутри есть сигнал signals: void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru