我正在尝试使用子进程调用来调用 python 函数。我见过很多子进程的例子,但没有看到任何调用另一个 python 函数的例子。我不确定它是否可以完成。
我的函数fakeFxn
会进行一些处理,这些处理可能需要几秒钟或几小时的时间。我想跳过那些花费超过特定时间(例如 1 小时)的内容。这个函数还返回了一些我需要收集的值。
def fakeFxn(val):
if (val== "terminate"):
for i in range(10):
z = "t"
return(z)
else:
for i in range(100000000): #Instead of infinite loop, here I am doing some big computation
y = "nt"
return(y)
import subprocess
elapsedTime = 0
p = subprocess.Popen(retval = fakeFxn("terminate"))
rc = p.poll() #returncode
while (rc == None):
sleep(5)
elapsedTime = elapsedTime + 5
if(elapsedTime <10):
rc = p.poll()
continue
else:
rc = "timeout"
p.kill()
break
这是一个好方法吗?或者有没有其他方法可以做到这一点?我在这里问了一个相关的问题:突然停止执行命令并继续执行下一个命令
我的实际功能是这篇文章的“rpart”功能。