this repo has no description

fix(feedgen): add global exception handler

Changed files
+11 -3
+11 -3
feedgen.py
··· 43 43 if event_count % 2500 == 0: 44 44 feed_manager.commit_changes() 45 45 46 - async def shutdown(signal, loop): 47 - logger.info(f'received exit signal {signal.name}') 46 + def handle_exception(loop, context): 47 + msg = context.get("exception", context["message"]) 48 + logger.error(f"Caught exception: {msg}") 49 + logger.info("Shutting down...") 50 + asyncio.create_task(shutdown(loop)) 51 + 52 + async def shutdown(loop, signal=None): 53 + if signal: 54 + logger.info(f'received exit signal {signal.name}') 48 55 feed_manager.stop_all() 49 56 tasks = [t for t in asyncio.all_tasks() if t is not asyncio.current_task()] 50 57 [task.cancel() for task in tasks] ··· 58 65 for sig in catch_signals: 59 66 loop.add_signal_handler( 60 67 sig, 61 - lambda s=sig: asyncio.create_task(shutdown(s, loop)) 68 + lambda s=sig: asyncio.create_task(shutdown(loop, signal=s)) 62 69 ) 70 + loop.set_exception_handler(handle_exception) 63 71 64 72 try: 65 73 loop.create_task(main())