停止正在运行的作业没有隐含的风险,操作系统将负责正确终止进程。
如果您的工作是在文件上进行写操作,则磁盘上可能会有很多被截断的文件。
如果您在数据库上编写或与某个远程进程连接,则也可能会出现一些小问题。
但是,Python标准池不支持超时,并且突然终止进程可能会导致应用程序内部出现异常行为。
from pebble import process, TimeoutError
with process.Pool() as pool:
task = pool.schedule(function, args=[1,2], timeout=5)
try:
result = task.get()
except TimeoutError:
print "Task: %s took more than 5 seconds to complete" % task