代码执行中传递的度量和限制时间

8fq7wneg  于 2021-05-19  发布在  Spark
关注(0)|答案(0)|浏览(204)

我有类似下面代码的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)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题