[关闭]
@StarSky 2017-01-09T10:42:24.000000Z 字数 1073 阅读 806

2017-01-05 difflib存疑 + service 监测

工作日记


用的是 Python 的 difflib库来计算两段字符串的相似度,是把56个民族与传入参数比较得到相似度得分,将得到的结果存入 list 按照相得分排序,取字数一致的第一个,比如“布伦”经过矫正后的结果是“布依”。但是在 Linux 的 gpu 测试环境下就有出入,可能会是“土家”,并且,好多别的字符串的矫正后的输出结果也会是“土家”。这种现象甚至会随着每一次测试结果发生变化,比如遇到的第一次矫正后的结果是“傈僳”,那么可能后面跟着的好几个别的的矫正结果也都是“傈僳”。有点困惑。python difflib
经提示可能是线程安全的问题,此处待落实修正

线上服务需要做 service 的实时监测,找了个例子
用socket模块实现检测端口和检测web服务
测试没问题,将所有被监测端口信息从config文件中读入
ConfigParser模块常用方法示例
发送监控邮件的时候遇到了一点小问题,建议复习STMP协议
因为停掉的进程需要重启,通过execfile()函数调用启动进程的 python 文件。测试结果发现报错 (NameError: name 'IdRecognitionHTTPWorker' is not defined)
Python命名空间的本质
Python文档
NameError using execfile in python
globals and locals in python exec()
python execfile()和locals()函数
Python: 'import *' vs execfile
之后发现execfile()不如直接 import 好用
What is the best way to call a Python script from another Python script?
但很快就发现在重启进程的时候,只重启了第一个被监测到异常的进程,程序就停了。。stf推荐使用
Python 进程管理工具 Supervisor 使用教程
hmmmm守护进程。。一头雾水。。好多东西分不清,囧。
最后组长跟我说应该松耦合,用shell命令。
python 学习笔记 8 -- Python下调用Linux的Shell命令
测试的时候在想每秒钟每个端口监测一次,需不需要启多进程来检测,以前看过,但是具体写代码的时候还是习惯去网上找 example 改改来用,这是坏习惯吗?
Python多进程编程
但是计时后发现总共的耗时(包括重启时间)很低,不需要启多进程就能保证每个端口近似一秒的监测间隔。
主进程需要监测整点
python 时间模块小结(time and datetime)

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注