Lets say I run such callback
@app.callback(Output('server_data','data'),[State('server_data','data'),Trigger('patch_data','n_intervals')])
def create_update_query_data_residential(server_data):
if server_data is None:
info("Puxando dados do S3 residencial")
df = grab_data_s3_file_system(bot='residential',type_of_data='conversion')
df_s3_max_date = df.select('queued_date_service').max().item()
rds_df = load_df_rds_conversion(df_s3_max_date,'residential')
server_data = pl.concat([df,rds_df],how='vertical').sort(by='queued_date_service').to_pandas()
return Serverside(server_data)
info("Carregando dados do filesystem")
schema = {'queued_date_service':pl.Datetime('us'),'steps':pl.Categorical,'original_user_id':pl.Categorical,
'campaign_source':pl.Categorical,'api_orders_hash_id':pl.Categorical,'redemption_laststate':pl.Boolean}
loaded_server_data = pl.from_pandas(server_data,schema_overrides = schema)
old_server_data_max_data = loaded_server_data.select('queued_date_service').max().item()
info("Executando novo query no RDS")
rds_data = load_df_rds_conversion(old_server_data_max_data,'residential')
if rds_data.is_empty():
info("Por enquanto nao temos dados no RDS")
return dash.no_update
info("Concatenando...")
new_server_data = pl.concat([loaded_server_data,rds_data],how='vertical').sort(by='queued_date_service').to_pandas()
return Serverside(new_server_data)
Which just checks if I already have data stored, if not well it runs a heavy process of querying such data. If I want to use such data in another page, would I be able to? I ask because when I test it it seens to always be null in another page. Even tho the callbacks and the dcc.Stores are in lets say the app.layout
app.layout = html.Div(
children=[
html.Div(
className='header-div',
children=[
html.Img(
src="https://seeklogo.com/images/C/Claro_PB-logo-A54549A20D-seeklogo.com.png",
className='logo'
),
dbc.NavbarSimple(
children=[
dbc.NavItem(dcc.Link(page['name'], href=page['path'], className='nav-link')) for page in dash.page_registry.values()
],
brand="Dashboard AVI",
brand_href="/",
color="#b30606",
dark=True,
),
# Store em serverside
dcc.Store(id="server_data"),
# Dados referentes a feedback
dcc.Store(id="feedback_data"),
# Aqui é o intervalo de quanto e quando o current data e atualizado
dcc.Interval(id="patch_data",interval=300000),
]
),
dash.page_container
],
)