首页 > 解决方案 > 动态改变 Bokeh AjaxDataSource polling_interval

问题描述

有没有办法改变 AjaxDataSource 的轮询间隔?

假设以下是数据源:

source = AjaxDataSource(data_url=f"{data_url}", polling_interval=30000, mode='append', adapter=adapter, name='ajax_data_source')

以下是适配器(为简洁起见,我删除了对数据进行的操作)

adapter = CustomJS(args=dict(first_plot=first_plot, first_plot_x_range=first_plot.x_range, first_plot_y_range=first_plot.y_range, source_column_names=source_column_names, ), 
          code="""
                  let pts = cb_data.response.plot_data
                  return pts
               """

在将数据返回到数据源之前,我想在适配器内部调整轮询间隔。我可以使用以下代码行来获取数据源的句柄并查看其属性。此外,我可以更改数据 url,以便我可以修改它以通知服务器我在屏幕上的最后一个数据点。但是,当我尝试更改轮询间隔时,即使属性显示更新的值,它也会被忽略。

因此,以下工作:

let data_source = Bokeh.documents[0].get_model_by_name(`ajax_data_source`)
data_source.data_url = 'some new url'

但是,以下不

let data_source = Bokeh.documents[0].get_model_by_name(`ajax_data_source`)
data_source.polling_interval = 1000
console.log(data_source.polling_interval) // this returns 1000 as expected

数据源继续以旧频率更新

我无法提供完整的工作示例,因为它已嵌入到 Django 项目中

标签: bokeh

解决方案


推荐阅读