Я создал бота. Он может выполнять некоторые команды в чате, и для работы с этой его частью я использую
def RunBot():
bot.polling(none_stop=True, interval=1, timeout=30, long_polling_timeout=65)
И есть другая часть бота, где я получаю обновления по всем входящим сообщениям (я добавил бота в чат) с помощью:
def getUpdates():
...
MethodGetUpdates = f'https://api.telegram.org/bot {BOT_TOKEN}/getUpdates'
offsetParam = {'offset': offset, 'allowed_updates': ['message']}
response = requests.get(MethodGetUpdates, offsetParam)
...
(я вычисляю offset)
НО я могу заставить эти части работать только по отдельности, а не вместе. В этом проблема.
Я узнал, что можно использовать "threading", поэтому написал так:
def RunBot():
bot.polling(none_stop=True, interval=1, timeout=30, long_polling_timeout=65)
def runScheluders():
schedule.every(70).seconds.do (getUpdates)
if __name__ == "__main__":
t1 = threading.Thread(target=runBot)
t2 = threading.Thread(target=runScheluders)
t1.start()
t2.start()
И это не работает( В этой стадии бот отвечает на команды в чате, но getUpdates не видит новых сообщений и возвращает: '{'ok': True, 'result': []}'
А если я прокомментирую в функции 'main' t1 или t2, то оставшаяся будет работать идеально.
Например, так:
if __name__ == "__main__":
t2 = threading.Thread(target=runScheluders)
t2.start()
Но я хочу, чтобы они работали вместе. Что я должен сделать, чтобы это исправить?
Большое спасибо заранее