Python job scheduling for humans. Forked and modified from github.com/dbader/schedule.
An in-process scheduler for periodic jobs that uses the builder pattern for configuration. Schedule lets you run Python functions (or any other callable) periodically at pre-determined intervals using a simple, human-friendly syntax.
Inspired by Adam Wiggins' article "Rethinking Cron" and the clockwork Ruby module.
- A simple to use API for scheduling jobs.
- Very lightweight and no external dependencies.
- Excellent test coverage.
- Tested on Python 3.5, and 3.6
$ 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.
Please also check the FAQ there with common questions.
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.
- Daniel Bader - @dbader_org - mail@dbader.org
- Cochise Ruhulessin - @magicalcochise - c.ruhulessin@ibrb.org
Distributed under the MIT license. See LICENSE.txt
for more information.