MTPyroger/docs/source/topics/scheduling.rst

74 lines
1.5 KiB
ReStructuredText
Raw Normal View History

2019-07-15 12:37:18 +00:00
Scheduling tasks
================
Pyrogram itself as Telegram MTProto API Framework contains only stuff
related to Telegram. Scheduling is out of it's scope.
But it is easy to integrate pyrogram with your favourite scheduler.
schedule
--------
Note that schedule is not suitable for async version of pyrogram.
.. code-block:: python
import time
import schedule
def job():
app.send_message("me", "Hi!")
schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every(5).to(10).minutes.do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
schedule.every().minute.at(":17").do(job)
with app:
while True:
schedule.run_pending()
time.sleep(1)
apscheduler
-----------
.. code-block:: python
import time
from apscheduler.schedulers.background import BackgroundScheduler
def job():
app.send_message("me", "Hi!")
scheduler = BackgroundScheduler()
scheduler.add_job(job, 'interval', seconds=3)
scheduler.start()
app.run()
Apscheduler supports async version of pyrogram too, here is async example:
.. code-block:: python
from apscheduler.schedulers.asyncio import AsyncIOScheduler
async def job():
await app.send_message("me", "Hi!")
scheduler = AsyncIOScheduler()
scheduler.add_job(job, 'interval', seconds=3)
scheduler.start()
app.run()