КонспектGPT КонспектGPT
Курсовая

Реализация фонового режима выполнения команд в Telegram-боте

25 стр.18 июня 2026

Цель курсовой работы

Исследовать и реализовать механизм фонового выполнения задач в Telegram-боте с использованием Python, обеспечивающий корректное управление состоянием и обработку команд /start и /spravka.

Ключевая идея

В работе рассматривается организация фонового режима работы бота, при котором команда /start запускает периодическое выполнение ресурсоёмких задач с контролем состояния, а команда /spravka обеспечивает оперативную справку с приоритетной остановкой фонового процесса. Анализируется использование потоков и таймеров для планирования задач, а также механизмы предотвращения параллельного запуска тяжелых операций, что обеспечивает стабильность и отзывчивость бота.

Наименование образовательного учреждения
КУРСОВАЯ РАБОТА
на тему
фонового режима цикла /start и выполнение команды /spravka import threading import sched import time import logging import sys import requests from datetime import datetime from requests import get from messenger_bot_api import * from route_download import addRoute_download from calendar_download import addCalendar_download from vehicle_task_download import addVehicleTask_download from stop_times_download import addStop_times_download from trip_shape_download import addTrip_shape_download from trip_stop_download import addTrip_stop_download from archive import archive from metrica import route_calendar from metrica import route_vehicle_task from metrica import calendar_stop_times from metrica import vehicle_task_driver from metrica import trip_trip_shape from metrica import stop_times_calendar from metrica import stop_times_trips from metrica import vehicle_task_vehicle from metrica import trip_shape_sequence from metrica import trip_stop_sequence from metrica import trip_shape_coordinate from metrica import nariad_ktp from metrica import trip_stop_sequence token ='BOT-5e29a075-359a-4674-a594-7817887be564-1672bf4a-91d1-43b7-afdc-d36967c6b50b-1774426139951-fde70d5b-9c52-4b56-b3b5-a28559953f9f' workspaceId = 3157651805106612 groupId = 3157652129449794 rest = 'https://api.tdm.mos.ru' sse = 'https://pusher.tdm.mos.ru' file = 'https://fileupload.tdm.mos.ru' #s = sched.scheduler(time.time, time.sleep) interval_seconds = 930 # Интервал между проверками timer = None # Ссылка на текущий таймер is_running = False # Флаг активности тяжелой задачи def start_handler(event): event.reply_text('Бот запущен \n') schedule_next_task(event) def schedule_next_task(event): global timer, is_running if is_running: print("Задача уже выполняется, пропускаем повторный старт.") return current_time = datetime.now().strftime('%d/%m/%y %H:%M:%S') print(f"[{current_time}] Начало выполнения плановой задачи...") is_running = True try: # Здесь находится вся ваша тяжелая логика загрузок и проверок addRoute_download() addCalendar_download() addTrip_shape_download() addStop_times_download() addVehicleTask_download() addTrip_stop_download() # Логика отправки результатов пользователю (event.reply_text) # ... ваш код if count_x > 0: event.reply_text(...) ... finally: # Эта часть выполнится всегда, даже если в try произойдет ошибка is_running = False print(f"[{datetime.now().strftime('%H:%M:%S')}] Задача завершена. Следующий запуск через {interval_seconds} сек.") # Планируем следующий вызов этой же функции через interval_seconds секунд # Запланировать следующий шаг ТОЛЬКО если мы не были остановлены снаружи if is_running == False: timer = threading.Timer(interval_seconds, schedule_next_task, args=[event]) timer.daemon = True # Делаем поток демоном, чтобы он завершился вместе с основным процессом timer.start() def repeat_task(): print(f"[{datetime.now().strftime('%d/%m/%y %H:%M:%S')}]") # event.reply_text(f"[{datetime.now().strftime('%d/%m/%y %H:%M:%S')}]") def message_handler(event: MessageBotEvent): txt: str = event.message_text.lower() if event.message_text is not None else None reply_message_id = None if txt == 'hello': resp = 'Hi, I am bot' elif txt == 'how are you': resp = 'I am fine' elif txt == 'bye': resp = 'Bye' elif txt is not None and txt.startswith('reply'): resp = 'I replied to the message' reply_message_id = event.message_id else: resp = event.message_text event.reply_text_message(MessageRequest(resp, reply_message_id)) def spravka_handler(event): """Запускает первую итерацию фонового процесса.""" global timer, is_running event.reply_text('Оперативная справка \n') # Остановка фонового процесса if timer is not None and timer.is_alive(): print("Принудительная остановка фонового таймера для выполнения справки.") timer.cancel() timer = None # Принудительно запрещаем запуск новой итерации is_running = False def main(): bot = Application(token, {'api_base_url': rest, 'sse_base_url': sse, 'file_upload_base_url': file}) bot.add_handler(CommandHandler('start', start_handler)) bot.add_handler(CommandHandler('spravka',spravka_handler)) bot.add_handler(MessageHandler(message_handler)) bot.start() print("Запущен") if __name__ == '__main__': main()
Содержание
1.
Введение
3
2.
Обзор Telegram-ботов и особенностей обработки команд
5
3.
Механизмы фонового выполнения задач в Python
9
4.
Проектирование и реализация фонового режима в Telegram-боте
13
5.
Тестирование и анализ результатов реализации
17
6.
Заключение
21
7.
Список литературы
23

Нужна такая же курсовая работа?

КонспектGPT напишет курсовую работу на любую тему за 10–30 минут: оригинальность больше 90%, оформление по ГОСТу, реальные источники, обход ИИ-детекторов. Просто введи тему — нейросеть сама подберёт структуру, наполнит главы и оформит библиографию.

Создать такую же работу

Частые вопросы

Могу ли я скачать эту работу целиком?

Нет, полный текст этой работы доступен только её автору. Но вы можете за пару минут сгенерировать свою курсовую работу на эту или любую другую тему — с уникальной формулировкой, своей структурой и по вашим требованиям к объёму.

Какая оригинальность у сгенерированных работ?

В среднем 85–95% по Антиплагиат.ру. Каждая работа генерируется с нуля под вашу тему, а не собирается из готовых шаблонов. Дополнительно доступны режимы «обход ИИ-детекта» (GPTZero, ZeroGPT) и «уникализация» под конкретную систему антиплагиата.

Сколько это стоит?

Бесплатно доступно только создание содержания работы — структуры с главами и подпунктами, которую можно отредактировать под свои требования. Саму работу можно сгенерировать в PRO-версии за 328 ₽: полный текст, оформление по ГОСТу, список литературы и экспорт в Word. Это в десятки раз дешевле заказа у автора на бирже.

В каком формате доступна работа после генерации?

Готовая работа скачивается в формате Word (DOCX) с уже применённым оформлением по ГОСТу: титульный лист, содержание с нумерацией страниц, сноски и список литературы. Файл открывается и свободно редактируется в Microsoft Word, Google Документах, LibreOffice и «Р7-Офис» — можно дописать свои примеры, поправить формулировки и подстроить работу под требования преподавателя.

Можно ли использовать свои материалы и источники?

Да. При создании работы загрузите файлы в блок «свои доп. материалы» — методичку от преподавателя, конспекты лекций, нужные главы учебника или научные статьи. Нейросеть учтёт их как контекст и напишет работу на основе именно этого материала, а не только общих знаний. Совет: загружайте самые релевантные фрагменты, а не весь учебник целиком — так текст получится точнее.

Сколько времени занимает генерация?

Реферат или доклад — 5–10 минут. Курсовая — 15–20 минут. Дипломная или ВКР — 25–40 минут (генерация по главам с проверкой на связность).

Можно ли отредактировать структуру перед генерацией?

Да, обязательно. Сначала нейросеть предлагает содержание (список глав и подпунктов), вы можете его изменить, добавить/убрать пункты, поменять формулировки — и только потом запускать генерацию полного текста.

Похожие курсовые работы

Все курсовые работы →