取消在破折号回调中运行的耗时代码

时间:2019-06-04 13:23:27

标签: python plotly-dash

我有一个带有一些按钮的仪表板,这些按钮启动了一些我想能够取消的耗时的任务。据我了解,Dash在每次回调都启动一个新的python进程。如果真是这样,我将需要获得该过程的引用才能杀死它。

到目前为止,我已经尝试过使用一个回调,该回调在第二次单击时将返回None,而没有启动耗时的代码,但是该回调似乎是独立的。在提供的代码示例中,如果再次单击该按钮,则将其按钮字体颜色更改为红色。

from selenium import webdriver

@app.callback(Output('button2', 'style'),
          [Input('button2', 'submit_n_clicks')])
def update_output(n_clicks):
    if n_clicks is None:
        return {'color': colors['black']}
    if n_clicks % 2 == 1:
        driver = webdriver.Chrome(executable_path=driver_path)
        # do some time consuming stuff with the driver ...
        return {'color': colors['green']}
    else:
        return {'color': colors['red']}

if n_clicks % 2 == 0:我想取消第一次单击按钮时执行的代码。

0 个答案:

没有答案