Skip to main content

Python scheduling library

Project description

pyat

https://travis-ci.org/vrtsystems/pyat.svg?branch=master https://coveralls.io/repos/vrtsystems/pyat/badge.svg?branch=master&service=github

pyat is the Python analogue of the Unix at daemon, it runs tasks at specified times, optionally providing a means to pass around results and exceptions.

The interface is intended to be able to support a variety of usage scenarios including synchronous applications with a main loop, sporadically called functions, multithreadded/multiprocessing based code and asynchronous frameworks like Twisted or Tornado.

REQUIREMENTS

TYPICAL USAGE

import pyat.sync
import time

scheduler = pyat.sync.SynchronousScheduler()

# ... etc ...

background_task = None

while True:
    # ... etc ...

    scheduler.poll()

    if foo == bar:
        # Do something in 10 seconds.
        background_task = scheduler.schedule(
            time.time() + 10, my_task, arg1, arg2, kwarg1=arg3)

    elif foo == baz:
        # Cancel task
        background_task.cancel()
        background_task = None

    elif (foo == quux) and (background_task is not None):
        # Check back on background task
        try:
            result = background_task.result
            # do something with result
            background_task = None
        except pyat.sync.NotExecutedYet:
            # A bit too early
            pass

STATUS

  • Synchronous implementation pyat.sync works.

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

pyat-0.0.1.tar.gz (5.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page