从ascpio异常处理程序获取未来的参数

时间:2017-07-20 15:27:52

标签: python python-asyncio

我正在尝试创建一个自定义异常处理程序,以便在Exception中由协程引发asynio时重新启动连接。

像一个协程:

@asyncio.coroutine
def process_notification(device):
    results = yield from get_notifications(device)
    # here I am creating other tasks
    return result

自定义异常处理程序定义如下:

def custom_exception_handler(loop, context):
    asyncio.base_events.BaseEventLoop.default_exception_handler(loop, context)

    future = context.get('future')
    #TODO: how to get the argument device and create a new task with it

在应用程序中:

...
loop = asyncio.get_event_loop()
loop.set_exception_handler(custom_exception_handler)

task = asyncio.ensure_future(process_notification(device))
...

如图所示,在TODO中,我错过了如何从任务初始调用中获取参数。

0 个答案:

没有答案