在指定时间内未完成的Python进程如何杀掉?

2 投票
3 回答
530 浏览
提问于 2025-04-16 07:44

这是一个场景:

我有一个Python脚本,它是通过浏览器的AJAX调用的。我希望这个Python脚本能够运行并返回结果,但如果它在10秒内没有成功运行,我希望这个脚本能中止,并返回其他的处理结果。而且,在一开始,我想记录一下这个请求是什么。

这是我考虑的架构:

指挥脚本

调用三个脚本,作为子进程运行?

1. 主要的代码,执行并返回结果

2. 第二个脚本,等待10秒,然后返回False

3. 第三个脚本,用于在数据库中记录请求

指挥脚本将返回(1)的结果,或者如果收到(2)的反馈则返回错误。

你会怎么实际实现这个呢?我搞不清楚是应该使用线程库还是使用os库中的子进程。

或者有没有更好的方法来做到这一点?

3 个回答

1

如果这个脚本在类似Unix的系统上运行,你可以使用SIGALRM来实现这个功能。具体的例子可以在Python文档中找到。

0

我强烈建议你使用Python的multiprocessing库。这个库里面有一个叫process.terminate()的方法。

撰写回答