text: Title: uwsgi  background callbacks progress hangs
  Body: dash                2.11.1
  dash-core-components 2.0.0
  dash-html-components 2.0.0
  dash-table           5.0.0
  
  OS: debian 12.0
  
  uwsgi 2.0.21
  chrome 114.0.5735.198 (Official Build) (64-bit)
  
  
  try to use uwsgi as app server:
  
  `uwsgi --http-socket :8080 --master --workers 4  -w dtest2:wsgi_app`
  
  and test background callbacks with progress
  
  ```python
  #!/usr/bin/python3
  # -*- coding: utf-8 -*-
  
  import os
  import time
  
  from dash import Dash, html, dcc, Input, Output, callback, DiskcacheManager
  import diskcache
  import plotly.express as px
  import plotly.io as pio
  import pandas as pd
  
  dcache = diskcache.Cache("./cache")
  bcm = DiskcacheManager(dcache)
  
  app = Dash(__name__, title='dash test2', background_callback_manager=bcm)
  wsgi_app = app.server
  
  
  
  app.layout = html.Div([
  html.Div(
  [
    html.Div(
    [
      html.P(id="paragraph1", children=["Button not clicked"]),
      html.Progress(id="progress_bar1", value="0"),
    ]
    ),
    html.Button(id="button_run1", children="Run Job!"),
    html.Button(id="button_cancel1", children="Cancel Running Job!"),
  ]
  ),
  
  html.Div(
  [
    html.Div(
    [
      html.P(id="paragraph2", children=["Button not clicked"]),
      html.Progress(id="progress_bar2", value="0"),
    ]
    ),
    html.Button(id="button_run2", children="Run Job!"),
    html.Button(id="button_cancel2", children="Cancel Running Job!"),
  ]
  )
  
  
  ]
  )
  
  def long_task(set_progress, n_clicks):
    total = 10
    for i in range(total + 1):
      set_progress((str(i), str(total)))
      time.sleep(1)
      
    pid = os.getpid()
  
    return f"Clicked {n_clicks} times, pid {pid}"
  
  
  
  
  @callback(
    output=Output("paragraph1", "children"),
    inputs=Input("button_run1", "n_clicks"),
    running=[
      (Output("button_run1", "disabled"), True, False),
      (Output("button_cancel1", "disabled"), False, True),
      (
        Output("paragraph1", "style"),
        {"visibility": "hidden"},
        {"visibility": "visible"},
      ),
      (
        Output("progress_bar1", "style"),
        {"visibility": "visible"},
        {"visibility": "hidden"},
      ),
      (
        Output("progress_bar1", "value"),
        '0',
        '0',
      ),
  
    ],
    cancel=Input("button_cancel1", "n_clicks"),
    progress=[Output("progress_bar1", "value"), Output("progress_bar1", "max")],
    background=True,
    prevent_initial_call=True
  )
  def long_task_calback1(set_progress, n_clicks):
    return long_task(set_progress, n_clicks)
  
  
  @callback(
    output=Output("paragraph2", "children"),
    inputs=Input("button_run2", "n_clicks"),
    running=[
      (Output("button_run2", "disabled"), True, False),
      (Output("button_cancel2", "disabled"), False, True),
      (
        Output("paragraph2", "style"),
        {"visibility": "hidden"},
        {"visibility": "visible"},
      ),
      (
        Output("progress_bar2", "style"),
        {"visibility": "visible"},
        {"visibility": "hidden"},
      ),
      (
        Output("progress_bar2", "value"),
        '0',
        '0',
      ),
  
    ],
    cancel=Input("button_cancel2", "n_clicks"),
    progress=[Output("progress_bar2", "value"), Output("progress_bar2", "max")],
    background=True,
    prevent_initial_call=True
  )
  def long_task_calback2(set_progress, n_clicks):
    return long_task(set_progress, n_clicks)
  
  
  
  
  if __name__ == '__main__':
    app.run(debug=True)
  
  ```
  
  look like background callbacks run in background as expected but no update progress performed
  and `http://127.0.0.1:8080/_dash-update-component` hangs in Pending state
  
  why uwsgi?
  lot more options than in gunicorn's
  
  with
  `gunicorn dtest2:wsgi_app -b :8081`
  everything works as expected
  
  not sure this is bug or feature
  
  
  