Schedule support for cherrypy.
Project description
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.
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.
Source Distribution
File details
Details for the file marbaloo_schedule-0.1.0.tar.gz.
File metadata
- Download URL: marbaloo_schedule-0.1.0.tar.gz
- Upload date:
- Size: 2.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3c35a85d9a12c9c7ae107ed29dfd5a85f52b33f7c3553aba0a984c868d05dc5
|
|
| MD5 |
1cf4ceec9e9a674c03ba395edfd1aecc
|
|
| BLAKE2b-256 |
3f23ed45a1b3ba5418b89c4941c2c3b244f8339308515caaf63973f1c516ad44
|