Skip to main content

Schedule support for cherrypy.

Installation

pip install marbaloo_schedule

Usage

# app.py
import cherrypy
import marbaloo_schedule

schedule_plugin = marbaloo_schedule.Plugin(cherrypy.engine)
schedule_plugin.subscribe()
cherrypy.tools.schedule = marbaloo_schedule.Tool()


class Root(object):
    job_started = False

    def do_jobs(self):
        import schedule
        # request level jobs
        # e.g: send emails
        # if my_job_completed:
        #     schedule.CancelJob
        pass

    @cherrypy.expose
    def index(self):
        schedule = cherrypy.request.schedule
        if self.job_started is False:
            schedule.every(5).seconds.do(self.do_jobs)
            return 'jobs started :)'
        else:
            return 'jobs already started!'

config = {
    '/': {
        'tools.schedule.on': True
    }
}
cherrypy.quickstart(Root(), '/', config)

And for server level jobs something like this:

import cherrypy
import marbaloo_schedule

schedule_plugin = marbaloo_schedule.Plugin(cherrypy.engine)
schedule_plugin.subscribe()


class Root:
    pass

cherrypy.tree.mount(Root(), '/', {})
cherrypy.engine.signals.subscribe()
cherrypy.engine.start()


def do_server_jobs():
    # server level jobs
    print('Job is Done')
schedule_plugin.schedule.every(5).seconds.do(do_server_jobs)

cherrypy.engine.block()

P.S: For stop jobs anywhere, use schedule tags.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

marbaloo_schedule-0.1.0.tar.gz (2.7 kB view details)

Uploaded Source

File details

Details for the file marbaloo_schedule-0.1.0.tar.gz.

File metadata

File hashes

Hashes for marbaloo_schedule-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d3c35a85d9a12c9c7ae107ed29dfd5a85f52b33f7c3553aba0a984c868d05dc5
MD5 1cf4ceec9e9a674c03ba395edfd1aecc
BLAKE2b-256 3f23ed45a1b3ba5418b89c4941c2c3b244f8339308515caaf63973f1c516ad44

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page