美文网首页python技巧
协程的意外(额外出现的)异常处理

协程的意外(额外出现的)异常处理

作者: 陆_志东 | 来源:发表于2018-07-10 13:25 被阅读0次

在使用协程的时候一定加了很多的异常,但百密而一疏,总是会有想象不到的异常发生,这个时候为了不让程序整体崩溃应该使用协程的额外异常处理方法,这个方法会去执行绑定的回调函数.

g_dict=dict{}
g = gevent.spawn(self._g_fetcher, feed_name)   # 创建协程
g_dict[feed_name] = [g,False]
g.link_exception(self._link_exception_callback)  # 给该协程添加出现处理不了的异常时候的回调函数
def _link_exception_callback(self, g):
        # 可能遇到无法修复的错误,需要修改代码 todo 报警
        # 可以在这个函数里面做一些错误异常的打印,或者文件的关闭,连接的关闭.
        self.terminated_flag = True # 停止整个程序 让 supervior重启
        logger.info("_link_exception_callback {0} {1}".format(g, g.exception))
        self._kill_sleep_gevent()   # 轮询结束休眠的协程

def _kill_sleep_gevent(self):
    for i,is_sleep in g_dict.items():
        if is_sleep[1] == "True":
            gevent.kill(is_sleep[0])

相关文章

  • 协程的意外(额外出现的)异常处理

    在使用协程的时候一定加了很多的异常,但百密而一疏,总是会有想象不到的异常发生,这个时候为了不让程序整体崩溃应该使用...

  • Android中对Kotlin Coroutines(协程)的理

    (接第一部分) 异常处理1.协程的异常传递协程的异常传播也是遵循了协程上下文的机制,除了取消异常(Cancella...

  • Android版kotlin协程入门(三):kotlin协程的异

    kotlin协程的异常处理 在上一篇《Android kotlin协程入门(二):kotlin协程的关键知识点初步...

  • 协程的异常处理

    CoroutineExceptionHandler 被用来将通用的 catch代码块在协程中自定义日志记录或异常处...

  • 协程的异常处理

    什么情况下 try-catch 会失效? 在 try-catch 块中创建了一个子协程,调用了一个百分百会失败的接...

  • Kotlin协程

    协程基础概念[https://zhuanlan.zhihu.com/p/427092689]协程异常处理[http...

  • Python协程

    目录:一、基于生成器的协程二、协程状态三、协程预激装饰器四、终止协程和异常处理五、协程返回值六、yield fro...

  • 协程中的取消和异常 (核心概念介绍)

    当我们需要避免多余的协程处理任务减少内存浪费,节约电量,协程的取消操作尤为重要。而协程的异常处理对于用户体验来说也...

  • 破解 Kotlin 协程(4) - 异常处理篇

    关键词:Kotlin 协程 异常处理 异步代码的异常处理通常都比较让人头疼,而协程则再一次展现了它的威力。 1. ...

  • 4.协程的异常处理(2)

    异常的传播异常传播是指异常在父子协程中的传播,什么是父子协程,在当前协程中又启动一个协程,那么这个新启动的协程就是...

网友评论

    本文标题:协程的意外(额外出现的)异常处理

    本文链接:https://www.haomeiwen.com/subject/ivpfpftx.html