我有一个大问题。我正在一个Web Python项目中工作,在其中单击按钮后,将调用一个特定的控制器,然后还调用一个存在于python模块中的另一个函数,如下面的代码所示。但是,我需要第二个按钮来停止流功能控制器的过程。
import analyser
def stream():
analyser.get_texts()
response.flash = "Analysis Done."
return ""
我一直在研究如何通过外部事件(类似于中断)来停止进程,但是我所拥有的解决方案都是关于如何使用来停止python脚本。 sys.exit(),例如,通过 return语句。这些解决方案对我都不起作用。
我希望用户只要我的函数 analyser.get_texts()一直保持处理状态,就可以随时停止该函数。
所以,我的问题是如何通过单击视图上的按钮来停止执行 stream 功能?谢谢。
答案 0 :(得分:1)
如果我对您的理解正确,那么您的分析仪将无法提供自己的方式来终止正在进行的计算。因此,您需要将其包装到允许您在没有“同意”的情况下终止分析器的东西。
正确的方法取决于以这种方式终止分析器有多严重:它会使资源处于不良状态吗?
据此,您有多种选择:
在单独的过程中运行分析。这些可以从外面干净地杀死。请注意,强制停止线程通常不是一个好主意,因此请使用进程。
使用某种异步任务管理,可让您创建和停止任务(例如Celery)。