@@ -292,16 +292,21 @@ def _enable_integration(integration: "Integration") -> None:
292292 logger .debug ("Integration already enabled: %s" , identifier )
293293 return
294294
295- logger .debug ("Setting up integration %s" , identifier )
296- _processed_integrations .add (identifier )
297- try :
298- type (integration ).setup_once ()
299- integration .setup_once_with_options (client .options )
300- except DidNotEnable as e :
301- logger .debug ("Did not enable integration %s: %s" , identifier , e )
302- return
295+ if identifier not in _installed_integrations or identifier == "asyncio" :
296+ # Asyncio is special because it patches the currently running event
297+ # loop. _installed_integrations, on the other hand, prevents
298+ # re-patching on the process level.
299+ logger .debug ("Setting up integration %s" , identifier )
300+ _processed_integrations .add (identifier )
301+ try :
302+ type (integration ).setup_once ()
303+ integration .setup_once_with_options (client .options )
304+ except DidNotEnable as e :
305+ logger .debug ("Did not enable integration %s: %s" , identifier , e )
306+ return
307+
308+ _installed_integrations .add (identifier )
303309
304- _installed_integrations .add (identifier )
305310 client .integrations [integration .identifier ] = integration
306311
307312
0 commit comments