Job scheduling for humans.
Project description
Python job scheduling for humans.
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” (Google cache) 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 2.7 and 3.4
Usage
$ pip install schedule
import schedule
import time
def job():
print("I'm working...")
schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
while True:
schedule.run_pending()
time.sleep(1)
FAQ
In lieu of a full documentation (coming soon) check out this set of frequently asked questions for solutions to some common questions.
Meta
Daniel Bader - @dbader_org - mail@dbader.org
Distributed under the MIT license. See LICENSE.txt for more information.
History
0.3.2 (2015-07-02)
Fixed issues where scheduling a job with a functools.partial as the job function fails. Thanks @dylwhich.
Fixed an issue where scheduling a job to run every >= 2 days would cause the initial execution to happen one day early. Thanks @WoLfulus for identifying this and providing a fix.
Added a FAQ item to describe how to schedule a job that runs only once.
0.3.1 (2014-09-03)
Fixed an issue with unicode handling in setup.py that was causing trouble on Python 3 and Debian (https://github.com/dbader/schedule/issues/27). Thanks to @waghanza for reporting it.
Added an FAQ item to describe how to deal with job functions that throw exceptions. Thanks @mplewis.
0.3.0 (2014-06-14)
Added support for scheduling jobs on specific weekdays. Example: schedule.every().tuesday.do(job) or schedule.every().wednesday.at("13:15").do(job) (Thanks @abultman.)
Run tests against Python 2.7 and 3.4. Python 3.3 should continue to work but we’re not actively testing it on CI anymore.
0.2.1 (2013-11-20)
Fixed history (no code changes).
0.2.0 (2013-11-09)
This release introduces two new features in a backwards compatible way:
Allow jobs to cancel repeated execution: Jobs can be cancelled by calling schedule.cancel_job() or by returning schedule.CancelJob from the job function. (Thanks to @cfrco and @matrixise.)
Updated at_time() to allow running jobs at a particular time every hour. Example: every().hour.at(':15').do(job) will run job 15 minutes after every full hour. (Thanks @mattss.)
Refactored unit tests to mock datetime in a cleaner way. (Thanks @matts.)
0.1.11 (2013-07-30)
Fixed an issue with next_run() throwing a ValueError exception when the job queue is empty. Thanks to @dpagano for pointing this out and thanks to @mrhwick for quickly providing a fix.
0.1.10 (2013-06-07)
Fixed issue with at_time jobs not running on the same day the job is created (Thanks to @mattss)
0.1.9 (2013-05-27)
Added schedule.next_run()
Added schedule.idle_seconds()
Args passed into do() are forwarded to the job function at call time
Increased test coverage to 100%
0.1.8 (2013-05-21)
Changed default delay_seconds for schedule.run_all() to 0 (from 60)
Increased test coverage
0.1.7 (2013-05-20)
API change: renamed schedule.run_all_jobs() to schedule.run_all()
API change: renamed schedule.run_pending_jobs() to schedule.run_pending()
API change: renamed schedule.clear_all_jobs() to schedule.clear()
Added schedule.jobs
0.1.6 (2013-05-20)
Fix packaging
README fixes
0.1.4 (2013-05-20)
API change: renamed schedule.tick() to schedule.run_pending_jobs()
Updated README and setup.py packaging
0.1.0 (2013-05-19)
Initial release
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for micropython-schedule-0.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47f3381ccc3750da8e9a56e4cbc78baca59522af34e45241a1e4196945caf302 |
|
MD5 | e7b05fcf4f5ab6b1823b61628c7f4bb0 |
|
BLAKE2b-256 | e5e556f35be8ac49dbf0874c7d74e9b02d3879a55a7e6b2432e4da7e214ba2aa |