170 похожих чатов

Всем привет. Возникла необходимость захостить бота (Python, telebot) на Windows сервере,

но слегка намучился с настройкой Task Scheduler. Цель - перезапуск бота раз в час. Крутил разные настройки, но либо перезапуск не отрабатывал, либо запускалось несколько тасков параллельно, что приводило к ошибке про только один инстанс бота. Где можно посмотреть\почитать про настройку? Или же буду благодарен за консультацию

14 ответов

23 просмотра

Давайте попробуем решить изначальную проблему. Зачем перезапускать бота раз в час?

Daniil- Автор вопроса
Savva Mirzoyan
Давайте попробуем решить изначальную проблему. Зач...

Давайте Раз в час - это просто примерная идея перезапускать раз в N времени. Через несколько дней бот начинает откушивать оперативу, что плачевно сказывается на и так не очень мощном сервере

Daniil
Давайте Раз в час - это просто примерная идея пере...

Тогда проблема в том, что процесс бот кушает оперативу и не очищает ее. Подразумеваю, там либо кэш, либо треды, да?

Daniil- Автор вопроса
Savva Mirzoyan
Тогда проблема в том, что процесс бот кушает опера...

Скорее, кэш. Не сильно большой поток запросов к боту, но он залезает в БД

Daniil
Скорее, кэш. Не сильно большой поток запросов к бо...

Ваш код не знаю, но я бы на вашем месте пересмотрел кеш в вашем боте, если он так много занимает

Daniil- Автор вопроса
Daniil
Могу в личку прислать сниппет?

Если честно, то не надо :) лучше сюда: больше людей помогут

Daniil- Автор вопроса

@bot_init.message_handler(func=lambda m: True) def request_from_user(m): if m.text in COMMAND_LIST: # Записываем лог. activities_logging(m.from_user.id,m.text) # Получаем параметры запроса к БД. command = get_command_query(m.text) # Оповещаем пользователя. bot_init.send_message(m.chat.id, f'Выгрузка по команде *{m.text}* запущена, это может занять до 2-3 минут.', parse_mode="Markdown", reply_markup=KEYBOARD) # Пишем в консоль, что был запрос print(*(m.chat.id,m.text,datetime.datetime.now())) # Получаем инфо из БД. filename = None # Сохраняем файл, если это была детализация, после чего отправляем. if 'Детализация' in m.text: details = get_db_info(command['server'], command['db'], command['query']) filename = filename_gen(m.text) save_file(details,filename) bot_init.send_document(m.chat.id, data=open(f'{path_to_save}\{filename}', 'rb'), reply_markup=KEYBOARD) else: # Если нет - отправляем сообщения из списка. messages = get_messages_list(command) if messages and len('\n\n'.join(messages))>9: answer = '\n\n'.join(messages) bot_init.send_message(m.chat.id, answer, parse_mode= "Markdown",reply_markup=KEYBOARD) else: creator_call(bot_init,m.chat.id) # Ждём следующей команды. bot_init.register_next_step_handler(m, request_from_user) elif m.text == '/start': bot_init.send_message(m.chat.id, 'Бот успешно активирован',parse_mode="Markdown",reply_markup=KEYBOARD) bot_init.infinity_polling(none_stop=True,timeout=10, interval = 5)

Daniil- Автор вопроса
Daniil
@bot_init.message_handler(func=lambda m: True) def...

Я в питоне не силен, нл что то мне память подсказывает, что файл нужно закрыть после дейтсвий с ним "data = open()"

Daniil- Автор вопроса
Savva Mirzoyan
Я в питоне не силен, нл что то мне память подсказы...

Этот кусок дописал, спасибо Есть ещё идеи, куда посмотреть?

Daniil
Этот кусок дописал, спасибо Есть ещё идеи, куда по...

поллинг в телеботе периодически отваливается. Если нужно остаться на телеботе, то перехожите на вебхуки

Daniil- Автор вопроса
Savva Mirzoyan
поллинг в телеботе периодически отваливается. Если...

Там infinity polling, отваливается, но возобновляет захват новых сообщений

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта