Metadata-Version: 1.1
Name: marbaloo-schedule
Version: 0.1.0
Summary: Schedule support for cherrypy.
Home-page: http://github.com/marbaloo/marbaloo_schedule
Author: Mahdi Ghane.g
Author-email: UNKNOWN
License: MIT
Description: Marbaloo Schedule
        =================
        
        `Schedule <https://github.com/dbader/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 <https://schedule.readthedocs.io/en/stable/faq.html#clear-job-by-tag>`_.
Keywords: schedule cherrypy marbaloo marbaloo_schedule
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Framework :: CherryPy
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development :: Libraries
