zoukankan      html  css  js  c++  java
  • 【Python】模块学习之Timer定时任务,递归定时自调获取博客浏览量

    Timer定时任务

    下面是Timer函数的官方doc介绍信息

        """
                Call a function after a specified number of seconds:
                t = Timer(30.0, f, args=None, kwargs=None)
                t.start()
                t.cancel()     # stop the timer's action if it's still waiting
        """    
    • 第一个参数时指定多长时间之后执行这个函数,第二个参数时调用的函数名,
    • 后面两个是可选函数,作为传递函数需要使用的参数,可以传递普通的参数和字典
    • t.start() 启动这个定时任务,也可以使用t.cancel()在一定的条件来停止这个定时任务,

    下面这行代码表示十秒钟后调用一次views_count这个函数

    Timer(10, views_count).start()

    自调任务实例

    下面的这个实例利用threading.Timer()建立了一个自调任务,实现了每十秒请求一次博客园获取浏览量

    #! /usr/bin/python
    # coding:utf-8
    """
    @author:Administrator
    @file:Timer_test.py
    @time:2018/02/08
    """
    import requests
    import re
    from threading import Timer
    
    
    def views_count():
        global count
        global source_view
        article_views = []
        url = "http://www.cnblogs.com/Detector/default.html?page=%s"
        for i in range(1, 5):
            html = requests.get(url % i).text
            article_view = re.findall("_Detector 阅读((.*?))", html)
            article_views += article_view
        count += 1
        current_view = sum(map(lambda x: int(x), article_views))
        if current_view - source_view > 50:
            print("You have made great progress")
        else:
            print("current_view: ", current_view)
        if count < 10000:  # 运行一万次
            Timer(10, views_count).start()
    
    
    count = 0
    source_view = 2412  # 设定一个初始阅读数据
    Timer(10, views_count).start()
  • 相关阅读:
    How to change hostname on SLE
    How to install starDIct on suse OS?
    python logging usage
    How to reset password for unknow root
    How to use wget ?
    How to only capute sub-matched character by grep
    How to inspect who is caller of func and who is the class of instance
    How to use groovy script on jenkins
    Vim ide for shell development
    linux高性能服务器编程 (二) --IP协议详解
  • 原文地址:https://www.cnblogs.com/Detector/p/8433830.html
Copyright © 2011-2022 走看看