我有一个带有一些按钮的仪表板,这些按钮启动了一些我想能够取消的耗时的任务。据我了解,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:
我想取消第一次单击按钮时执行的代码。