安排对Cherrypy的支持。

marbaloo_schedule的Python项目详细描述


Schedule支持Cherrypy。

安装

pip install marbaloo_schedule

用法

# 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)

对于类似这样的服务器级作业:

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()

注意:对于任何位置的停止作业,请使用schedule tags

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
从Java中的方法返回列表时遇到问题   java如何忽略json字段,并使用Jackson ObjectMapper获取其值以进行映射   spring通过更新其各自java对象的值来映射两个xsd文件   java从HttpClient获取500错误,在浏览器中工作   java使用物理键输入(耳机中的按钮)在安卓中执行一些操作   如何在int数组(java)中追加int?   java Spring RequestParam的默认值等于方法调用   java将JsonLayout添加到log4j2 json配置   Ubuntu上的maven Tomcat6 libs和/usr/share/java   java单元测试Android活动   java获取URL证书的屏幕截图   java如何为自定义类加载器加载的类提供工具?   FB墙上的java错误图片,来自安卓应用程序的反馈帖子(安卓 FB sdk)   从Intellij IDEA内部运行Tomcat时的java差异?   java TDD与不可能的例外   安卓 Java日期表示差异