Python超时功能

时间:2013-07-04 09:33:10

标签: python django apache

我尝试使用超时装饰器(使用信号)来超时功能,但它导致主线程错误

在几秒钟后使函数超时的任何其他解决方案

由于

1 个答案:

答案 0 :(得分:0)

对我来说,使用多线程方法可以解决这样的问题,因为执行方法的线程无法抢占正在运行的任务或使用操作系统功能抢占​​正在运行的函数并执行某些代码。

  1. 你可以产生一个线程来执行你的方法代码并让主线程倒计时,直到所分配的时间消失。

  2. 另一种方法是使用信号python框架,它能够发送映射到系统进程信号的信号(所有信号都不能映射,因为并非所有操作系统都支持它们)。当发送这样的信号时(signal.alarm(3)在3秒后发送它),python进程完成执行当前解释器指令并执行你定义的处理程序。

  3. BTW我刚刚注意到您的问题与此one重复,您可以在其中找到第二个解决方案的代码段。

相关问题