Обратные вызовы Plotly / Dash, вызываемые dcc.Интервал создается резервная копия, когда интервал является более частым, чем время, необходимое для завершения обратного вызова

#plotly #plotly-dash #plotly-python

#plotly #plotly-dash #plotly-python

Вопрос:

Я хочу выполнить обратный вызов, чтобы обновить график как можно быстрее. В настоящее время я использую dcc.Interval(...) .

Для выполнения обратного вызова обычно требуется 1-3 секунды (он обновляет график).

Если я установил dcc.Interval(id='myid', interval=1000) , обратные вызовы выполняются слишком быстро, и график в основном зависает. Кажется, что каждый последующий обратный вызов прерывает выполнение рендеринга, и все заедает.

Моя цель — просто запускать обратный вызов как можно чаще. Это означает разное время в зависимости от условий сети, и я не хочу устанавливать интервал с наименьшим общим знаменателем.

Plotly очень стремится избегать циклических зависимостей, поэтому нет очевидного способа выполнить бесконечный цикл с обратными вызовами.

Ответ №1:

Сообщение на форуме plotly затрагивает этот вопрос:

https://community.plotly.com/t/prevent-re-entrant-callbacks/17393

Таким образом, он использует исключение plotly PreventUpdate и общие блокировки, чтобы определить, когда запускается обратный вызов до завершения предыдущего обратного вызова.

В этом сообщении на форуме есть краткое обсуждение того, что это не лучший вариант использования Plotly / Dash.