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

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

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

14 ответов

21 просмотр

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

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, отваливается, но возобновляет захват новых сообщений

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

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

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
как быть с принтером? такой подход прокатит?
zamtmn
12
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Карта сайта