2017-12-16 28 views
2

봇을 파이썬으로 작성했습니다. 주기적으로 작동이 멈 춥니 다. 가상 컴퓨터가 안정적으로 작동합니다. 실행중인 서비스가 항상 활성 상태입니다. 애저 서비스의 가상 머신에 https://github.com/eternnoir/pyTelegramBotAPI파이썬에 대한 내 전보 봇이 작동하지 않습니다.

작품 (우분투 16.04.5) -

나는이 라이브러리를 사용하고 있습니다.

# -*- coding: utf-8 -*- 
import re 
import config 
import telebot 

bomg = "Бомж" 
regRusLetters = re.compile("^[а-яА-Яё]+$") 

bot = telebot.TeleBot(config.token) 


def second_vowels(text): 
    pos = 0 
    i = 1 
    while i < len(text): 
     if text[i] in "ауоыиэяюёе": 
      pos = i 
      break 
     i = i + 1 
    return pos 


@bot.message_handler(commands=['start', 'help']) 
def send_welcome(message): 
    bot.reply_to(message, "Пришли мне слово на Русском и я его бомжирую!") 


@bot.message_handler(content_types=["text"]) 
def repeat_all_mesages(message): 
    response = "не могу бомжировать..." 
    text = message.text.lower() 
    if re.match(regRusLetters, text): 
     pos = second_vowels(text) 
     response = bomg + text[pos:] 

    bot.send_message(message.chat.id, response) 


bot.polling(none_stop=True) 

systemd를 사용하여 서비스로 구성 :

다음은 파이썬 스크립트 코드입니다. 내가 SSL을 통해 연결하고 프로세스의 상태를 검사 할 때

[Unit] 
Description=TelegramBot 
After=network.target 

[Service] 
Type=idle 
ExecStart=/usr/bin/python3.5 /home/rhanza/TelegramBot/bot.py 
Restart=always 

[Install] 
WantedBy=multi-user.target 

, 나는 다음을 참조하십시오 : 봇은 항상 메시지에 응답하지 않는

status bot.service 
● bot.service - TelegramBot 
    Loaded: loaded (/etc/systemd/system/bot.service; enabled; vendor preset: enabled) 
    Active: active (running) since Sat 2017-12-16 21:06:31 UTC; 3min 8s ago 
Main PID: 3823 (python3.5) 
    Tasks: 4 
    Memory: 19.2M 
     CPU: 930ms 
    CGroup: /system.slice/bot.service 
      └─3823 /usr/bin/python3.5 /home/rhanza/TelegramBot/bot.py & 

Dec 16 21:06:31 botholder1 systemd[1]: bot.service: Service hold-off time over, scheduling restart. 
Dec 16 21:06:31 botholder1 systemd[1]: Stopped TelegramBot. 
Dec 16 21:06:31 botholder1 systemd[1]: Started TelegramBot. 

있지만, 여기에 bot.service 파일입니다 서비스는 안정적입니다. 이유가 무엇이며 문제를 해결하는 방법을 알 수 없습니다. 누군가가 대답을 말할 수 있습니까?

+1

포인트를 알아 내고 최소 코드 만 – Sean

답변

0

전보 서버는 longpooling에서 주기적으로 504 (게이트웨이 시간 초과) 오류를 보냅니다.

longpooling 대신 webhook을 사용하십시오.