python如何在所有线程结束后执行最后操作_python,多线程_python如何让后台线程执行必要的操作后再退出?,python,多线程 - phpStudy...

python如何让后台线程执行必要的操作后再退出?

我写了一个web服务,服务启动的时候会另起一个线程去扫描特定目录的文件入库,并且把文件名及扫描的位置记入redis。

文件大小会变动(其他程序尾部写入)

文件数目也会变动

我不知道什么时候变动

所以这个扫描的线程是每分钟去遍历一次文件目录。现在问题来了:

如果扫描线程是Daemon线程,那么Web服务一关,它立马随之结束,可能已扫描信息还没有记录,重启Web服务的时候数据会不同步。

如果扫描线程是非Daemon线程,即便Web服务关闭的时候手动关闭扫描线程,由于time.sleep(60)语句会阻塞线程,线程不会立即结束,也很麻烦。

我现在采用的是方法1,在主程序关闭的时候手动关闭扫描线程,并且sleep了1s,防止子线程直接退出。感觉非常粗糙……

求问优雅的实现方式。

相关阅读:

Node.js和Linux Socket做游戏服务器的话各有什么优劣?

微信声音锁 有没开放`的API 或者类似的技术

RN 中如何设置Button高亮时的图片

像网易贵金属安装之后的导航页动画如何做到不卡的

关于Servlet编程中的getServletContext方法?

如何在文件第一行写入数据?

i18n怎么处理JavaScript文件中需要翻译的内容?

两个相似的静态方法优化

linux 关于实时网络监控

如何在头部判断,IE9以上和非IE浏览器的情况下加载某个JS

angularjs中如何在两个控制器中实现实时通信?

如何实现不可逆加密算法

怎么向vue单文件组件传数据?

./bin/spark-shell --jars 命令加载jar包的问题

html里标签里属性相关的困惑

C++中如何获取json数据中的中文编码?

请看正文中,请教下第一个V与第二个V是什么意思?

ssh+jquery ui查询数据报错

ExecuteReader获取的数据集不是从第一列开始的,怎么回事?

MDN中的一个继承多个对象的DEMO问题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值