Remove log message about received update in dispatcher and fix handling errors in tasks (async_task).

This commit is contained in:
Alex Root Junior 2018-01-07 18:21:09 +02:00
parent c5b828f809
commit 9de31422eb
2 changed files with 17 additions and 15 deletions

View file

@ -126,9 +126,6 @@ class Dispatcher:
:param update:
:return:
"""
start = time.time()
success = True
self.last_update_id = update.update_id
context.set_value(UPDATE_OBJECT, update)
try:
@ -189,10 +186,6 @@ class Dispatcher:
if err:
return err
raise
finally:
log.info(f"Process update [ID:{update.update_id}]: "
f"{['failed', 'success'][success]} "
f"(in {round((time.time() - start) * 1000)} ms)")
async def reset_webhook(self, check=True) -> bool:
"""
@ -1063,10 +1056,14 @@ class Dispatcher:
"""
def process_response(task):
response = task.result()
if isinstance(response, BaseResponse):
self.loop.create_task(response.execute_response(self.bot))
try:
response = task.result()
except Exception as e:
self.loop.create_task(
self.errors_handlers.notify(self, task.context.get(UPDATE_OBJECT, None), e))
else:
if isinstance(response, BaseResponse):
self.loop.create_task(response.execute_response(self.bot))
@functools.wraps(func)
async def wrapper(*args, **kwargs):

View file

@ -186,10 +186,15 @@ class WebhookRequestHandler(web.View):
dispatcher = self.get_dispatcher()
loop = dispatcher.loop
results = task.result()
response = self.get_response(results)
if response is not None:
asyncio.ensure_future(response.execute_response(self.get_dispatcher().bot), loop=loop)
try:
results = task.result()
except Exception as e:
loop.create_task(
dispatcher.errors_handlers.notify(dispatcher, context.get_value('update_object'), e))
else:
response = self.get_response(results)
if response is not None:
asyncio.ensure_future(response.execute_response(dispatcher.bot), loop=loop)
def get_response(self, results):
"""