async def run(): with _bg_metrics_lock: count = _background_process_counts.get(desc, 0) _background_process_counts[desc] = count + 1 _background_process_start_count.labels(desc).inc() _background_process_in_flight_count.labels(desc).inc() with BackgroundProcessLoggingContext(desc, count) as context: try: if bg_start_span: ctx = start_active_span( f"bgproc.{desc}", tags={SynapseTags.REQUEST_ID: str(context)}) else: ctx = noop_context_manager() with ctx: return await maybe_awaitable(func(*args, **kwargs)) except Exception: logger.exception( "Background process '%s' threw an exception", desc, ) finally: _background_process_in_flight_count.labels(desc).dec()
async def run(): with _bg_metrics_lock: count = _background_process_counts.get(desc, 0) _background_process_counts[desc] = count + 1 _background_process_start_count.labels(desc).inc() _background_process_in_flight_count.labels(desc).inc() with BackgroundProcessLoggingContext(desc) as context: context.request = "%s-%i" % (desc, count) try: ctx = noop_context_manager() if bg_start_span: ctx = start_active_span( desc, tags={"request_id": context.request}) with ctx: result = func(*args, **kwargs) if inspect.isawaitable(result): result = await result return result except Exception: logger.exception( "Background process '%s' threw an exception", desc, ) finally: _background_process_in_flight_count.labels(desc).dec()