Scheduling Tasks¶
Scheduling tasks means executing one or more functions periodically at pre-defined intervals or after a delay. This is useful, for example, to send recurring messages to specific chats or users.
Since there’s no built-in task scheduler in Pyrogram, this page will only show examples on how to integrate Pyrogram
with the main Python schedule libraries such as schedule and apscheduler. For more detailed information, you can
visit and learn from each library documentation.
Contents
Using schedule¶
Install with
pip3 install scheduleDocumentation: https://schedule.readthedocs.io
import time
import schedule
from pyrogram import Client
app = Client("my_account")
def job():
app.send_message("me", "Hi!")
schedule.every(3).seconds.do(job)
with app:
while True:
schedule.run_pending()
time.sleep(1)
Using apscheduler¶
Install with
pip3 install apschedulerDocumentation: https://apscheduler.readthedocs.io
from apscheduler.schedulers.background import BackgroundScheduler
from pyrogram import Client
app = Client("my_account")
def job():
app.send_message("me", "Hi!")
scheduler = BackgroundScheduler()
scheduler.add_job(job, "interval", seconds=3)
scheduler.start()
app.run()
apscheduler does also support async code, here’s an example:
from apscheduler.schedulers.asyncio import AsyncIOScheduler
from pyrogram import Client
app = Client("my_account")
async def job():
await app.send_message("me", "Hi!")
scheduler = AsyncIOScheduler()
scheduler.add_job(job, "interval", seconds=3)
scheduler.start()
app.run()