美文网首页
python-schedule

python-schedule

作者: dd1991 | 来源:发表于2022-02-16 17:24 被阅读0次

    schedule

    $ pip install schedule

    Document: Examples — schedule 1.1.0 documentation

    简介

    Python作业调度。使用友好的语法定期运行 Python 函数(或任何其他可调用函数)。

    一个简单易用的API,用于计划作业。

    用于定期作业的进程内计划程序。无需额外的流程!

    非常轻量级,没有外部依赖关系。

    出色的测试覆盖率。

    案例

    import schedule

    import time

    def job():

    print("I'm working...")#编辑定时任务

    schedule.every().seconds#每秒运行一次

    schedule.every(2).seconds#每2秒运行一次

    schedule.every(1).to(5).seconds#每1-5秒运行一次

    schedule.every(10).minutes.do(job)#每隔10分钟执行一次任务

    schedule.every().hour.do(job)#每隔一小时执行一次任务

    schedule.every().day.at("10:30").do(job)#每天10:30执行一次任务

    schedule.every().monday.do(job)#每周一的这个时候执行一次任务

    schedule.every().wednesday.at("13:15").do(job)#每周三13:15执行一次任务

    while True:

    schedule.run_pending()#run_pending:运行所有可以运行的任务

    time.sleep(1)

    取消任务和取消指定任务

    取消任务

    schedule.clear()

    取消指定任务

    #需要引入tag

    defgreet(name):

    print('hello {}'.format(name))

    schedule.every().day.do(greet,'andrea').tag('daily-tasks','friend')

    schedule.every().hour.do(greet,'john').tag('hourly-tasks','friend')

    schedule.every().hour.do(greet,'monica').tag('hourly-tasks','customer')

    schedule.every().day.do(greet,'derek').tag('daily-tasks','guest')

    schedule.clear('daily-tasks')#取消所有标签为daily-tasks的任务

    如何让任务值执行一次

    就是在定义任务的时候加个return

    使用装饰器计划作业

    from schedule import every, repeat, run_pending

    import time

    @repeat(every(10).minutes)

    def job():

       print("I am a scheduled job")

    while True:

       run_pending()

       time.sleep(1)

    将参数传递给作业

    do()将额外的参数传递给工作职能

    import schedule

    defgreet(name):

    print('Hello',name)

    schedule.every(2).seconds.do(greet,name='Alice')

    schedule.every(4).seconds.do(greet,name='Bob')

    fromscheduleimportevery,repeat

    @repeat(every().second,"World")

    @repeat(every().day,"Mars")

    defhello(planet):

    print("Hello",planet)

    取消作业

    若要从计划程序中删除作业,请使用schedule.cancel_job(job)

    importschedule

    def some_task():

    print('Hello world')

    job=schedule.every().day.at('22:30').do(some_task)

    schedule.cancel_job(job)

    运行一次作业

    从作业返回以将其从计划程序中删除。schedule.CancelJob

    import schedule

    import time

    defjob_that_executes_once():

    # Do some work that only needs to happen once...

    returnschedule.CancelJob

    schedule.every().day.at('22:30').do(job_that_executes_once)

    whileTrue:

    schedule.run_pending()

    time.sleep(1)

    相关文章

      网友评论

          本文标题:python-schedule

          本文链接:https://www.haomeiwen.com/subject/kasdlrtx.html