python定时任务

说明:使用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')

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值