сервер боке: порядок выполнения обратного вызова - PullRequest
0 голосов
/ 12 февраля 2020

На моем сервере bokeh подсчет времени выполняется при нажатии кнопки. Во время расчета я хочу покрасить кнопку в красный цвет и изменить метку на «Анализ в процессе». Это хорошо работает с приведенным ниже сценарием на моем ноутбуке. Однако тот же сценарий не работает так, как исключено, когда я использую рабочий стол, которым владею как сервер. При запуске сценария на этом сервере сначала выполняется расчет, а затем только на мгновение кнопка становится красной, а затем сразу же снова зеленой.

Упрощенный сценарий:

from bokeh.models import Button
from bokeh.io import curdoc
import time

def callback():
    button.button_type="danger"#signal work in progress via the button style
    button.label="Analysis in progress, please wait.."

    time.sleep(3)#or do some computation that takes time

    button.button_type="success"#signal the analysis is done via the button style
    button.label="Analysis Done"

button = Button(label='Analyze',button_type="success", width=500)
button.on_click(callback)

curdoc().add_root(button)

Мой ноутбук:

  • python 3,6
  • боке 1,4,0 ​​
  • Процессор Intel (R) Xeon (R) E3-1575M v5 3,00 ГГц, 32,0 ГБ ОЗУ
  • 64-бит Windows 10

Мой рабочий стол:

  • python 3.7
  • боке 1.4.0
  • Процессор Intel (R) Xeon® R-2174G @ 3,80 ГГц, 16,0 ГБ ОЗУ
  • 64-бит Windows 10

Я протестировал в обоих Chrome, Edge и IE11. Кроме того, при посещении сервера на моем рабочем столе с моего ноутбука я замечаю ту же проблему. Следовательно, я считаю, что это проблема на стороне сервера.

Ваша гипотеза по этому поводу приветствуется, а также альтернативы о том, как сигнализировать о работе.

(вы запускаете скрипт в cmd по: bokeh serve button.py --show)

1 Ответ

0 голосов
/ 12 февраля 2020

Боке зависит от торнадо. На обоих P C версия торнадо отличалась. Понижение версии торнадо с 6.0.2 до 5.0.2 решило проблему.

pip install tornado==5.0.2
...