Quantcast
Channel: 🎛️ Dash - Plotly Community Forum
Viewing all articles
Browse latest Browse all 6271

How to cancel a running callback when an input changes?

$
0
0

I have a dashboard with a dcc.DatePickerRange whose default value is last month. So for example, on page load:
start_date = “2020-06-01”
end_date = “2020-06-30”

When start_date or end_date change, it triggers a query whose execution time is proportional to the number of days between start_date and end_date.

If a user is interested in, say, the June 2015 data, they will first update start_date to “2015-06-01”, and, by the time they change end_date to “2015-06-30”, the query for June 2015 to June 2020 will have been fired and they will have to wait for this lenghty query to finish. Only then, will the real June-2015-only query run and the figure be updated.

If I could cancel the running callback and start a new one when end_date is updated, that would solve my problem.

Is there any way to do that?

layout = html.Div(
    children=[dcc.DatePickerRange(id="date-range",), dcc.Graph(id="figure"),]
)


@app.callback(
    Output("figure", "figure"),
    [Input("date-range", "start_date"), Input("date-range", "end_date")],
)
def update_figure(start_date, end_date):
    data = run_lenghty_query(start_date, end_date)
    figure = make_figure_from_data(data)
    return figure

1 post - 1 participant

Read full topic


Viewing all articles
Browse latest Browse all 6271

Trending Articles