aiogram - es ist ein leistungsfähiges Framework zum Erstellen von Telegrammbots in Python. Es kann jedoch schwierig sein, regelmäßige Datenaktualisierungen zu unterstützen, ohne den Code richtig zu organisieren. In diesem Artikel werden wir detailliert untersuchen, wie Sie Ihre Bot-Daten jeden Monat mit Aiogram aktualisieren können.
Der Schlüssel hier ist die Verwendung des Aiogram-Moduls.dispatcher.tasks, mit dem Sie Aufgaben in bestimmten Abständen ausführen können. Dieser Ansatz bietet Zuverlässigkeit und Flexibilität bei der Aktualisierung der Daten Ihres Bot.
Zuerst müssen Sie eine Funktion erstellen, die die Aufgabe zum Aktualisieren der Daten ausführt. In dieser Funktion müssen Sie die Aktualisierungslogik und die Datenaktualisierungsoperation selbst definieren. Nachdem die Daten aktualisiert wurden, können Sie die erforderlichen Schritte ausführen, z. B. die aktualisierten Daten an Bot-Abonnenten senden.
Erstellen Sie dann einen Bot-Manager mit dem Aiogram-Modul.Dispatcher und registrieren Sie die zuvor erstellte Funktion mithilfe der Methode als Aufgabe add_task. Als Parameter muss der Aufgabe die Häufigkeit der Datenaktualisierung übergeben werden, z. B. jeden Monat. Um dies zu tun, können Sie die Methode verwenden Interval aus dem Aiogram-Modul.dispatcher.filters.
Vergessen Sie schließlich nicht, die Ereignisschleife mit der Methode auszuführen start hat ein Aiogram-Objekt.executor.Executor, damit Ihr Bot Datenaktualisierungsaufgaben ausführen kann.
Auf diese Weise können Sie mit Aiogram und Aufgaben in regelmäßigen Abständen die Daten Ihres Bot jeden Monat einfach und zuverlässig aktualisieren. Zukünftige Aktualisierungen von Inhalten oder Daten verursachen aufgrund der Flexibilität und Leistung von aiogram keine Probleme oder zusätzliche Arbeit mehr.
Schritt 1: Vorbereitung des Projekts und Installation der Aiogram-Bibliothek
Bevor Sie beginnen, Ihre Botdaten jeden Monat mit Aiogram zu aktualisieren, müssen Sie das Projekt vorbereiten und die Aiogram-Bibliothek installieren. In diesem Abschnitt werden wir uns einige Schritte ansehen, die Ihnen helfen, schnell zu beginnen.
- Erstellen Sie ein neues Verzeichnis für das Projekt und navigieren Sie mit dem Befehl cd dorthin.
- Erstellen Sie eine virtuelle Umgebung für das Projekt, indem Sie den Befehl python3 -m venv venv ausführen. Verwenden Sie den Befehl source venv/bin/activate, um die virtuelle Umgebung auf macOS und Linux zu aktivieren, und unter Windows venv\Scripts\activate .
- Installieren Sie die Aiogram-Bibliothek, indem Sie den Befehl pip install aiogram ausführen. Diese Bibliothek bietet praktische Tools zum Erstellen von Telegrammbots.
- Erstellen Sie eine neue Datei bot.py und öffnen Sie es im Code-Editor. In dieser Datei schreiben wir Code für unseren Telegramm-Bot.
- Fügen Sie der Datei den folgenden Code hinzu bot.py :
In diesem Code importieren wir die erforderlichen Module, geben das Token Ihres Bot an und initialisieren den Bot und den Aiogram-Manager.
Jetzt ist unser Projekt bereit, mit der Aiogram-Bibliothek zu arbeiten. Im nächsten Abschnitt werden wir uns ansehen, wie Sie jeden Monat eine Aktualisierung Ihrer Bot-Daten einrichten.
Schritt 2: Erstellen einer Aufgabe zum automatischen Aktualisieren von Daten
Nachdem Sie den Befehlshandler "Aktualisieren" konfiguriert haben, müssen Sie eine Aufgabe erstellen, die jeden Monat automatisch ausgeführt wird, um die Botdaten zu aktualisieren. Dazu werden wir das Aiogram-Modul verwenden.dispatcher.scheduler .
Erstellen wir eine update_data-Funktion, die die Daten aktualisiert und den Befehl "Aktualisieren" aufruft.
async def update_data():# Обновление данныхawait bot.send_message(chat_id, "/обновить")
Indem wir den Befehl "Aktualisieren" innerhalb der Funktion aufrufen, stellen wir sicher, dass der Befehlshandler ausgeführt wird und die Daten aktualisiert werden.
Dann erstellen wir die Aufgabe mit dem Aiogram-Modul.dispatcher.scheduler und update_data-Funktion :
from aiogram import Dispatcherfrom aiogram.dispatcher.scheduler import Schedulerscheduler = Scheduler()async def on_startup(dp):scheduler.add_job(update_data, # Функция, которую нужно выполнить"interval", # Название типа задачиmonths=1, # Каждый месяцstart_date=datetime.now(), # Начало выполнения задачиargs=[dp], # Передаем dp в качестве аргумента)scheduler.start()
In der Funktion on_startup erstellen wir eine Aufgabe mit der Methode add_job . Hier geben wir die update_data-Funktion an, die jeden Monat mit dem Argument months=1 ausgeführt werden soll, und geben die aktuelle Uhrzeit als Beginn der Ausführung der Aufgabe an. Außerdem übergeben wir ein dp-Objekt als Argument, um Zugriff auf den Dispatcher innerhalb der update_data- Funktion zu haben.
Nachdem wir die Aufgabe erstellt haben, starten wir den Scheduler mit der Start-Methode.
Jetzt haben wir eine Aufgabe erstellt, um die Daten jeden Monat automatisch zu aktualisieren. Dies ermöglicht es dem Bot, immer auf dem neuesten Stand zu sein und die aktuellsten Daten zu verwenden.
Schritt 3: Konfigurieren Sie den Scheduler, um die Aufgabe monatlich auszuführen
Nachdem wir nun eine Funktion erstellt haben, die die Bot-Daten jeden Monat aktualisiert, richten wir den Scheduler so ein, dass er diese Aufgabe automatisch ausführt.
Dazu verwenden wir die Aiogram-Bibliothek und das Modul apscheduler, das die Möglichkeit bietet, die Ausführung von Aufgaben in unseren Telegram-Bots zu planen.
1. Installieren Sie die Apscheduler-Bibliothek mit dem folgenden Befehl:
pip install apscheduler
2. Erstellen Sie eine neue Datei, nennen Sie sie scheduler.py . und fügen Sie den folgenden Code hinzu:
from apscheduler.schedulers.asyncio import AsyncIOSchedulerfrom aiogram import types# Импортируем нашу функцию update_datafrom main import update_data# Создаем экземпляр планировщикаscheduler = AsyncIOScheduler()# Создаем функцию, которая будет выполняться каждый месяц@scheduler.scheduled_job('cron', month='*', day='1')async def scheduled_job():# Обновляем данные ботаawait update_data()# Запускаем планировщикscheduler.start()
3. Importieren Sie nun das Scheduler-Modul in die Hauptdatei Ihres Bots und fügen Sie die folgende Codezeile hinzu:
# Импортируем модуль schedulerfrom scheduler import scheduler
4. Starten Sie Ihren Bot und stellen Sie sicher, dass er fehlerfrei funktioniert.
Jetzt wird Ihr Telegram-Bot Ihre Daten jeden Monat automatisch aktualisieren. Sie können den Scheduler so konfigurieren, dass er die Aufgabe monatlich an einem beliebigen Tag im Monat ausführt, oder andere Optionen verwenden, um Ihre Anforderungen zu erfüllen.