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问题