Превышено максимальное количество попыток с URL-адресом: «Время ожидания подключения к api.telegram.org истекло. (время ожидания соединения = 5.0)'))

avatar
Woody
9 августа 2021 в 05:49
1719
1
0

Недавно я создал Telegram-бота, который поначалу работает нормально. Затем, через некоторое время (скажем, несколько часов), бот начинает выдавать следующее исключение, которое я действительно не понимаю:

Error while getting Updates: urllib3 HTTPError SOCKSHTTPSConnectionPool(host='api.telegram.org', port=443): Max retries exceeded with url: /bot1924749319:<mytoken>/getUpdates (Caused by ConnectTimeoutError(<telegram.vendor.ptb_urllib3.urllib3.contrib.socks.SOCKSHTTPSConnection object at 0x116208c90>  'Connection to api.telegram.org timed out. (connect timeout=5.0)'))
No error handlers are registered, logging exception.
Traceback (most recent call last):
  File "/Library/anaconda3/lib/python3.7/site-packages/socks.py", line 809, in connect
    negotiate(self, dest_addr, dest_port)
  File "/Library/anaconda3/lib/python3.7/site-packages/socks.py", line 444, in _negotiate_SOCKS5
    self, CONNECT, dest_addr)
  File "/Library/anaconda3/lib/python3.7/site-packages/socks.py", line 524, in _SOCKS5_request
    resp = self._readall(reader, 3)
  File "/Library/anaconda3/lib/python3.7/site-packages/socks.py", line 276, in _readall
    d = file.read(count - len(data))
  File "/Library/anaconda3/lib/python3.7/socket.py", line 589, in readinto
    return self._sock.recv_into(b)
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Мой код :

def papa_BT_scan(context: telegram.ext.CallbackContext):
    ws_nonFG_bot_web_scraping.papa_bt_scan(context)

#Server Start
#===========================================================
def server_start(update: telegram.Update, context: telegram.ext.CallbackContext):
    print("Telegram_bot_nonFG Started.")
    context.bot.send_message(chat_id=update.message.chat_id,text=':)')
    context.job_queue.run_daily(papa_BT_scan,datetime.time(hour=18, minute=00, tzinfo=pytz.timezone('Asia/Hong_Kong')),context=update.message.chat_id)
    

if __name__ == "__main__":

    REQUEST_KWARGS = {'proxy_url': 'socks5h://127.0.0.1:9150' }
    u = Updater('<myToken>', use_context=True,request_kwargs=REQUEST_KWARGS)
  

    start_handler = CommandHandler('s', server_start,pass_job_queue=True)
    u.dispatcher.add_handler(start_handler)
    
    u.job_queue.start()
    u.start_polling()
    u.idle()

Я искал в Интернете, большинство людей советуют использовать Proxy / VPN (ExpressVPN), которые я пробовал, но все равно бесполезно.

Источник
CallMeStag
9 августа 2021 в 07:21
0

При включении трассировки, пожалуйста, включите полную трассировку, а не усекайте ее;)

CallMeStag
9 августа 2021 в 07:23
0

Отвечает ли это на ваш вопрос? TimedOut в python-telegram-bot, но сообщение отправлено

Woody
9 августа 2021 в 07:32
0

так что я должен поставить «connect_timeout» на большее значение (скажем, «10») в REQUEST_KWARGS в средстве обновления, чтобы решить эту проблему?

Woody
9 августа 2021 в 07:37
0

Поскольку мое сообщение об ошибке говорит о том, что мой бот достиг максимума. количество попыток соединения, да?

CallMeStag
9 августа 2021 в 07:37
0

Вы не «должны», но это один из способов избежать этого. Не то чтобы, если бы это происходило только время от времени, я бы просто не стал этим заморачиваться…

Woody
9 августа 2021 в 07:46
0

это борьба со мной большую часть времени, и это происходит каждый раз, когда я запускаю бота! Что, если я замедляю работу своего бота? (Например, используйте time.sleep(2) для замедления сетевого запроса GET?

Woody
9 августа 2021 в 11:46
0

Кто-нибудь знает, сколько запросов можно отправить в телеграмме в минуту? Поскольку мой бот будет запрашивать около 40-50 раз (driver.get(url) через Selenium) в функциях «papa_bt_scan», не уверен, что это связано.

Woody
11 августа 2021 в 01:15
0

Кто-нибудь может помочь??

Ответы (1)

avatar
Woody
16 августа 2021 в 06:05
1

После нескольких возвратно-поступательных тестов я могу решить указанную проблему, введя параметры времени ожидания, как показано ниже

u.start_polling(timeout=600)