python使用threading.Timer实现线程循环任务定时器(一)

2023-05-16

在进行爬虫系统开发的过程中遇到需要间隔一段时间就重复执行的任务的需求,就想实现一个线程服务在后台监控数据的抓取状态,要想实现定时循环任务的脚本可以使用linux下的crontab命令来执行,但是在一个常驻进程里不太适用于使用这种办法,所以想启动一个线程来处理这类的小需求。

在查找资料后发现可以使用 threading.Timer来实现这个

代码如下:

def func1():
  print('Do something.')
  global timer
  timer = threading.Timer(3, func1)
  timer.start()

有资料说一定要使用 global 这个关键字,不使用的话会造成线程堆积最终程序退出。

为了证实一下这个说法是否正确,我进行了以下实验:

import threading
def func1(a):
    #Do something
    print('Do something')
    a+=1
    print(a)
    print('当前线程数为{}'.format(threading.activeCount()))
    if a>5:
        return
    t=threading.Timer(5,func1,(a,))
    t.start()

a用来记录func1的执行次数

 

threading.activeCount() #用来显示当前活跃的进程数

结果显示为:

活跃线程数一直保持不变,说明并不会造成线程的堆积。所以使用global关键词是没有必要的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python使用threading.Timer实现线程循环任务定时器(一) 的相关文章

随机推荐

  • Python人脸识别—我的眼里只有你

    人脸识别总感觉特别高深 xff0c 但是因为Python中已经有很多前辈写好了一些库 xff0c 可以直接调用 xff0c 大大降低了人脸识别的难度 之前在网上看到陈晓眼里只有陈妍希的照片 xff0c 特别喜欢 xff0c 想自己用pyth
  • 最全Python绘制饼形图(饼状图)

    饼状图 xff08 pie chart xff09 一般用于描述分类型数据的相对频数或百分数频数分布 xff0c 呈现部分与总体的关系 一 导入绘图数据 首先导入绘图所需的数据 span class token keyword import
  • 最全Python绘制条形图(柱状图)

    条形图 xff08 bar chart xff09 也称为柱状图 xff0c 是一种以长方形的长度为变量的统计图表 xff0c 长方形的长度与它所对应的数值呈一定比例 一 导入绘图数据 首先导入绘图所需的数据 span class toke
  • 算法题 股票买卖IV(Python)

    题目 https leetcode cn com problems best time to buy and sell stock iv 给定一个长度为 N 的数组 xff0c 数组中的第 i 个数字表示一个给定股票在第 i 天的价格 设计
  • 【Python】情人节表白烟花(带声音和文字)

    今天就是情人节了 xff0c 有想好送什么给亲爱的他 她吗 xff1f 去年5月20日的时候整理了Python浪漫表白源码合集 xff08 爱心 玫瑰花 照片墙 星空下的告白 xff09 xff0c 今天向大家介绍表白烟花 xff0c 祝单
  • 【Python】用pyecharts绘制我国人口分布和迁移地图

    一直很好奇我国人口分布和迁移情况 xff0c 所以想用Python分析一下 由于我国省份较多 xff0c 把数据放在地图上展示会更加清晰 xff0c 故本文用Python中的pyecharts库进行人口分布和迁移绘图展示 pyecharts
  • 模型评价指标—ROC曲线

    对于分类模型 xff0c 在建立好模型后 xff0c 我们想对模型进行评价 xff0c 常见的指标有混淆矩阵 F1值 KS曲线 ROC曲线 AUC面积等 也可以自己定义函数 xff0c 把模型结果分割成n 100 份 xff0c 计算top
  • 模型评价指标—F1值

    最近空余时间在参加数字中国创新大赛 xff0c 比赛规则是根据模型的F1值对参赛者进行排名 为了更深刻地理解这个指标 xff0c 我最近对它做了一些梳理 xff0c 现在把它分享给更多有需要的人图片 最近在参赛时也发现了一个问题 xff0c
  • 【Python常用函数】一文让你彻底掌握Python中的pivot_table函数

    任何事情都是由量变到质变的过程 xff0c 学习Python也不例外 只有把一个语言中的常用函数了如指掌了 xff0c 才能在处理问题的过程中得心应手 xff0c 快速地找到最优方案 本文和你一起来探索Python中的pivot table
  • python画生肖兔

    2022已经过去 xff0c 2023正在继续 xff0c 希望我们都能在平凡的日子里 xff0c 熠熠生辉 本文介绍运用Python中的turtle库控制函数画生肖兔 xff0c 并设置了2023年幸运词 xff0c 快截屏看看你的幸运词
  • 判断变量是否存在

    来获取一个变量是否存在 xff0c 用 if typeof a 61 34 undefined 34 alert 34 ok 34 xff0c xff0c 而不要去使用 if a 因为如果 a 不存在 xff08 未声明 xff09 则会出
  • Nextcloud 内部服务器错误解决

    在部署nextcloud过程中最后登录页面时出现内部服务器错误 xff0c 心态当时就炸了 在网上找了各种方案 xff0c 但是大部分博主都告诉我是 var lib php session 属组的权限问题 xff0c 或者web目录的权限不
  • golang中的(data race )典型数据竞争问题举例

    示例一 func main var wg sync WaitGroup wg Add 5 for i 61 0 i lt 5 i 43 43 go func fmt Println i Not the 39 i 39 you are loo
  • Jupyter Notebook怎么全选输出的内容?

    Ctrl 43 A 单击 双击 三连击 三连击 xff01 xff01 xff01
  • RetinaNet详细解读

    网络名称RetinaNet发表时间2018年1月作者Tsung Yi Lin Priya Goyal Ross Girshick Kaiming He and Piotr Dollar机构Facebook AI Research FAIR
  • 微信公众号服务器token验证失败?

    很可能是你用了官方的python范例 xff0c 官方的范例是python2的 xff0c 而我用的是python3的 将 map sha1 update list 修改为sha1 61 hashlib sha1 34 34 join li
  • 三分钟学会lightGBM安装及入门指南(一)

    果然标题大法好啊 xff0c 还是成功的让你进来了吧 xff0c xff0c 但是以下都是干货 我的机器环境python3 6 xff0c win7操作系统 xff0c 当然win10也是同样适用的 xff0c 有不懂的可以留言 xff0c
  • 微信小程序文字水平垂直居中对齐问题(完美解决方案)

    我们知道常用的居中对齐方式有很多种例如 xff1a text align center align items center justify content center margin auto 子容器在父容器中居中 但是在view中的文字
  • mac下python matplotlib中文乱码解决方案(亲测可用)!!

    在网上找了一大堆方法 xff0c 花了很久 xff0c 发现不是要安装各种字体就是要改配置 xff0c 而且字体真的不好找也不好安装 就例如下面这两种办法 xff0c mac下根本不管用 xff0c 别人管不管用我不知道 xff0c 反正我
  • python使用threading.Timer实现线程循环任务定时器(一)

    在进行爬虫系统开发的过程中遇到需要间隔一段时间就重复执行的任务的需求 xff0c 就想实现一个线程服务在后台监控数据的抓取状态 xff0c 要想实现定时循环任务的脚本可以使用linux下的crontab命令来执行 xff0c 但是在一个常驻