加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 中断并重新启动写操作

发布时间:2020-12-20 13:07:17 所属栏目:Python 来源:网络整理
导读:我目前正在集群上运行一段 Python代码.由slurm强制执行的部分规则是我的代码的wallclock运行时间有一个时间限制.这大多数时候都不是问题,因为我可以使用pickle检查我的代码,然后重新启动它. 然而,在代码I的末尾,需要写出我的所有数据(在完成所有计算之后我才
我目前正在集群上运行一段 Python代码.由slurm强制执行的部分规则是我的代码的wallclock运行时间有一个时间限制.这大多数时候都不是问题,因为我可以使用pickle检查我的代码,然后重新启动它.

然而,在代码I的末尾,需要写出我的所有数据(在完成所有计算之后我才能写入),这可能需要一些时间,因为可以收集非常大的数据.

我现在的问题是,在某些情况下,代码会被slurm终止,因为它超出了运行时间限制.

是否有某种方法可以中断写操作,停止代码然后重新启动我停止的位置?

解决方法

假设您将数据放在列表或元组中.
也许是发电机功能?

#Create generator function
def Generator():
    data=['line1','line2','line3','line4']:
    for i in data:
        yield i    
output=Generator() #reference it
.......
......

if [time conditions is true]:   
     file-open("myfile","a")
     file.write(str(next(output))
else:
     [Do something]

您还可以使用try捕获异常并重新启动main函数

try:
    MainFunction() #main function with generator next calls
except [you error Error]:
    MainFunction() #restart main function

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读