Python job scheduling for humans.
Forked from github.com/ibrb/python-aioschedule and rebased from a recent version of github.com/dbader/schedule.
Bug fixes for code in both source repos.
- A simple to use API for scheduling jobs, made for humans.
- In-process scheduler for periodic jobs. No extra processes needed!
- Very lightweight and no external dependencies.
- Excellent test coverage.
- Tested on Python 3.7, 3.8, 3.9, 3.10, 3.11
$ pip install aioschedule
import asyncio
import aioschedule as schedule
import time
async def job(message='stuff', n=1):
print("Asynchronous invocation (%s) of I'm working on:" % n, message)
asyncio.sleep(1)
for i in range(1,3):
schedule.every(1).seconds.do(job, n=i)
schedule.every(5).to(10).days.do(job)
schedule.every().hour.do(job, message='things')
schedule.every().day.at("10:30").do(job)
loop = asyncio.get_event_loop()
while True:
loop.run_until_complete(schedule.run_pending())
time.sleep(0.1)
Schedule's documentation lives at schedule.readthedocs.io.
Run vagrant up to spawn a virtual machine containing the development environment. Make sure to set the IBR_GIT_COMMITTER_NAME and IBR_GIT_COMMITTER_EMAIL environment variables.
- Geoff Robinson - [email protected]
- Daniel Bader - @dbader_org - [email protected]
- Cochise Ruhulessin - @magicalcochise - [email protected]
Inspired by Adam Wiggins' article "Rethinking Cron" and the clockwork Ruby module.
Distributed under the MIT license. See LICENSE.txt for more information.