You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- OS: Windows
- Browser Chrome
- Version 104.0.5112.81
Describe the bug
using background callbacks does not work with pages.
not using pages the code runs correctly
app.py
import os
import dash
from dash import DiskcacheManager, CeleryManager, html, page_container
# code to test without pages
# import pages.page as page
if 'REDIS_URL' in os.environ:
# Use Redis & Celery if REDIS_URL set as an env variable
from celery import Celery
celery_app = Celery(__name__, broker=os.environ['REDIS_URL'], backend=os.environ['REDIS_URL'])
background_callback_manager = CeleryManager(celery_app)
else:
# Diskcache for non-production apps when developing locally
import diskcache
cache = diskcache.Cache("./cache")
background_callback_manager = DiskcacheManager(cache)
app = dash.Dash(__name__,
use_pages=True,
# code to test without pages
# use_pages=False,
background_callback_manager=background_callback_manager)
app.layout = html.Div(
page_container
# code to test without pages
# page.layout()
)
if __name__ == "__main__":
app.run_server(debug=True)
Seems like the pickling calls register_page when unpickling the function definition on the workers, adding a context var to check if inside a background callback could fix this.
@T4rk1n You've done a great work on solving this issue! It helped a lot :)
Do you have any documentation on ignoring a register page?
Is it correct that as of now the only solution is dash.testing.ignore_register_page context manager?
Describe your context
Dash Callback Example 4: Progress Bar from https://dash.plotly.com/background-callbacks
Describe the bug
using background callbacks does not work with pages.
not using pages the code runs correctly
app.py
pages/page.py
Expected behavior
Ability to use background callbacks AND pages
Screenshots
The text was updated successfully, but these errors were encountered: