Форум сайта python.su
0
Есть телеграм-бот, к которому я стараюсь привязать отправку погоды по таймеру. Отдельно по таймеру оно работает, так же как и отдельно посылает запросы на погоду вручную типо “какая погода прям сейчас”. Возникла проблема - связать оба процесса, то есть дело пахнет многопоточностью, как я понял. Нашел вариант - использовать schedule и столкнулся со следующей проблемой: после установки времени таймера, я остаюсь в функции с отправкой сообщений по таймеру, то есть вручную все функции отваливаются.
Вот код для ознакомления:
def set_time(message): #Функция с запуском таймера и отправкой сообщения погоды timer = message.text schedule.every().day.at(timer).do(timer_alert, message) nowTime = datetime.now() print ('%s' % nowTime.strftime("%d.%m.%Y %H:%M:%S"), "// Set timer at: ", timer) process_step(message) while True: schedule.run_pending() def timer_alert(message): #Сообщение по таймеру nowTime = datetime.now() bot.send_message(message.chat.id, 'Погода пришла!') print ('%s' % nowTime.strftime("%d.%m.%Y %H:%M:%S"), '// Send weather timer message') @bot.message_handler(content_types=['location']) #обработка локации def handle_location(message): nowTime = datetime.now() lat = message.location.latitude lng = message.location.longitude bot.reply_to(message, '%s\n%s' % (lat, lng)) send_alltime(message) global forecast forecast = forecastio.load_forecast(api_key, lat, lng, time=datetime.now(), units="si") print ('%s' % nowTime.strftime("%d.%m.%Y %H:%M:%S"), '// Set location message')
Офлайн
12
вопросы про многопоточность к гил
а здесь обычный scheduler, если я правильно понял
Офлайн
221
>> как запустить 2 функции параллельно?
По простому: В связи с изменениями в питоне 3 вот так теперь
Офлайн