Skip to content

geoff-carve-systems/python-aioschedule

 
 

Repository files navigation

aioschedule

https://api.travis-ci.org/geoff-carve-systems/python-aioschedule.svg?branch=master https://coveralls.io/repos/geoff-carve-systems/python-aioschedule/badge.svg?branch=master

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

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.

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

Inspired by Adam Wiggins' article "Rethinking Cron" and the clockwork Ruby module.

Distributed under the MIT license. See LICENSE.txt for more information.

https://github.com/geoff-carve-systems/python-aioschedule

About

Python job scheduling for humans.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%