zoukankan      html  css  js  c++  java
  • python 定时任务 from apscheduler.schedulers.blocking import BlockingScheduler

    说明:使用python内置的模块来实现,本篇博客只是以循环定时来示范,其他的可以结合crontab的风格自己设定

    一、导包

    from apscheduler.schedulers.blocking import BlockingScheduler
    二、普通函数的使用

    (1)interval模式,功能比较单一

    sched = BlockingScheduler()
    @sched.scheduled_job('interval',seconds=5)
    def crawl_job():
    #五秒执行一次
    print('test')

    sched.start()
    (2)linux或者unix常用的crontab模式,功能比较多

    sched = BlockingScheduler()
    @sched.scheduled_job('cron',second='*/5')
    def crawl_job():
    #五秒执行一次
    print('test')
    sched.start()
    (3)其他crontab的使用

    sched = BlockingScheduler()
    @sched.scheduled_job('cron',second='*/5')
    def crawl_job():
    #五秒执行一次
    print('test')

    # # 表示2017年3月22日17时19分07秒执行该程序
    # sched.add_job(crawl_job, 'cron', year=2017, month=3, day=22, hour=17, minute=19, second=7)
    # # 表示任务在6,7,8,11,12月份的第三个星期五的00:00,01:00,02:00,03:00 执行该程序
    # sched.add_job(crawl_job, 'cron', month='6-8,11-12', day='3rd fri', hour='0-3')
    # # 表示从星期一到星期五5:30(AM)直到2014-05-30 00:00:00
    # sched.add_job(crawl_job(), 'cron', day_of_week='mon-fri', hour=5, minute=30, end_date='2014-05-30')
    # # 表示每5秒执行该程序一次,相当于interval 间隔调度中seconds = 5
    # sched.add_job(crawl_job, 'cron', second='*/5')

    sched.start()
    说明:sched.add_job()和注解@sched.scheduled_job()功能类似

    区别:个人发现注解再类 里面不再支持,add_job()可以

    三、类里面

    (1)第一种

    class Spider:
    '''
    对于类来说只支持add_job不再支持注解的形式
    '''
    def crawl_job(self):
    print('mytest')

    def start(self):
    sched.add_job(self.crawl_job,'cron',second='*/5')
    sched.start()

    Spider().start()
    (2)第二种


    class Spider:
    '''
    对于类来说只支持add_job不再支持注解的形式
    '''
    def crawl_job(self):
    print('mytest')

    sched.add_job(Spider().crawl_job,'cron',second='*/5')
    ————————————————
    版权声明:本文为CSDN博主「Mr夏先生」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/ryuhfxz/article/details/86739477

  • 相关阅读:
    『空』
    退役前的做题记录 Ⅰ
    BZOJ3600 没有人的算术(替罪羊树,线段树)
    洛谷P5324 [BJOI2019]删数(线段树)
    洛谷P4696 [CEOI2011]Matching(KMP)
    Leetcode 638 大礼包 DP
    Leetcode 86 分割链表
    Leetcode 71 简化路径
    Leetcode 17.15 最长单词 剪枝与记忆化
    Leetcode 17.22单词转换 dfs+回溯+剪枝
  • 原文地址:https://www.cnblogs.com/guofeng-1016/p/11777230.html
Copyright © 2011-2022 走看看