IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python装饰器与try-catch的结合 -> 正文阅读

[Python知识库]python装饰器与try-catch的结合

python语法糖之装饰器try-catch**

def exception_warpper(func):
    functools.wraps(func)
    def inner(*args, **kwargs):
        func_name = ''
        ret = None
        try:
            func_name = func.__name__
            ret = func(*args, **kwargs)
        except Exception as e:
            logger.exception(e)
            Alarm.msg('exception, {}'.format(func_name))
        return ret
    return inner

alarm报警模块

class Alarm(object):
    @classmethod
    def msg(cls, txt):
        ret = False
        try:
            url = "http://prom.thor.today:8000/api/home/message/custom/send"
            payload = {
                "tousers": ["lijinze1"], 
                "msgtype": "text", 
                "text": {
                    "content": txt
                }
            }
            requests.request("POST", url, json=payload, timeout=10)
            ret = True
        except Exception as e:
            logger.exception(e)
        return ret
    
    @classmethod
    def call(cls, txt):
        ret = False
        try:
            url = "http://prom.thor.today:8000/api/home/message/custom/send"
            payload = {
                "tousers": ["lijinze1"], 
                "msgtype": "voice", 
                "voice": {
                    "message": txt
                }
            }
            requests.request("POST", url, json=payload, timeout=10)
            ret = True
        except Exception as e:
            logger.exception(e)
        return ret

当python多线程遇到异常处理

spider_dir = os.path.dirname(os.path.realpath(__file__))
class Spider(object):
    def _load_class(self, cls_path, cls_pkg, cls_name):
        pyfile_name = os.path.basename(cls_path)
        module_name = os.path.splitext(pyfile_name)[0]
        imp_module = importlib.import_module(
            '.' + module_name,
            package=cls_pkg
        )
        imp_cls = getattr(imp_module, cls_name)
        return imp_cls
    def _crawl(self):
        crawler_dir = os.path.join(spider_dir, 'crawler', 'crawler_*.py')
        with ThreadPoolExecutor(max_workers=self.max_worker) as pool:
            futures = set()
            for cls_path in glob.glob(crawler_dir):
                imp_cls = self._load_class(
                    cls_path,
                    'spider.crawler',
                    'CrawlerImpl'
                )
                if imp_cls is not None:
                    cls_obj = imp_cls()
                    job = pool.submit(exception_warpper(cls_obj.crawl))
                    futures.add(job)
                else:
                    logger.error('spider:{} load fail!', cls_path)
            for job in as_completed(futures):
                result = job.result()
                if result:
                    self.crawler_result_list.append(result)
                    logger.info('crawl:{}, {}', result.name, result.url)
                else:
                    logger.warning('crawl_result is null')
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 15:25:01  更:2022-02-28 15:28:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:28:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码