我有类似下面代码的pysark代码。但我的实际代码太长了,不能放在一个帖子里。我实际的pyspark函数将放在try块中,注解就在这里。我正在尝试构建一个计时器,如果执行时间超过7秒,就会导致代码出错。我遇到的问题是,代码运行的时间比7秒长得多,在它失败之前(signal.alarm除外)。如果我缩短signal.alarm中的时间量,它将更快地失败,但仍然比我输入的秒长。而且,经过的时间总是比我输入的几秒钟长得多。有没有一种方法可以为pyspark代码创建一个精确的计时器来测量我等待代码完成的时间。如果是的话,有人能解释一下如何创建它吗?根据我所经历的时间,我的目标是在代码运行太长时停止它的运行。
代码:
from pyspark.context import SparkContext
import signal
# Register an handler for the timeout
def handler(signum, frame):
print('failed')
raise Exception("end of time")
# Register the signal function handler
signal.signal(signal.SIGALRM, handler)
# Define a timeout for your function
signal.alarm(7)
try:
# insert pyspark code here
[x for x in range(100)]
except:
1/0
# cancel timer if code returns before time out
signal.alarm(0)
暂无答案!
目前还没有任何答案,快来回答吧!