Job scheduling for humans.
Project description
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.
Features
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
Usage
$ 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)
Documentation
Schedule’s documentation lives at schedule.readthedocs.io.
Please also check the FAQ there with common questions.
Development
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.
Meta
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.