gpt4 book ai didi

python - 如何暂停在终端中运行的python脚本

转载 作者:太空宇宙 更新时间:2023-11-03 13:22:48 32 4
gpt4 key购买 nike

我有一个网络爬行 python 脚本在终端中运行了几个小时,它不断地填充我的数据库。它有几个嵌套的 for 循环。由于某些原因,我需要重新启动计算机并从我离开的地方继续我的脚本。是否可以保留指针状态并在终端中恢复之前运行的脚本?

我正在寻找一种无需更改 python 脚本即可工作的解决方案。修改代码的优先级较低,因为这意味着重新启动程序并重新投入时间。

更新:感谢 VM 的建议。我会接受的。为了完成,应该对脚本进行哪些通用修改以使其暂停和恢复?

更新 2:在 VM 上移植工作正常。我还修改了脚本以使其在网络故障时失效。代码写在下面。

最佳答案

您可以尝试暂停计算机或在随后可以暂停的虚拟机中运行。但是,由于您的脚本正在处理网络连接,因此一旦您启动系统,您的脚本可能无法从您离开的那一点开始工作。暂停计算机并恢复它或保存虚拟 M/C 并恢复它意味着您需要重新建立网络连接。对于系统外部的任何元素都是如此,网络就是其中之一。如果您使用的是动态网络,则很有可能在您下次启动时获得一个新 IP,并且您之前使用的网络状态将无效。

如果您打算修改脚本,您需要牢记一些事情。

  1. 添加序列化和反序列化功能。 Python 有 pickle 和更快的 cPickle 方法来完成它。
  2. 添加重启点。执行此操作的最佳方法是定期保存状态,并在重新启动脚本时,在建立所有 transient 元素(如网络)后从上次保存的状态重新启动。

这不是一项容易的任务,因此请考虑投入大量时间 :-)

注意***

再想想。除了更改脚本之外,还有一种选择。您可以尝试使用 Amazon EC2 等云虚拟化解决方案。

关于python - 如何暂停在终端中运行的python脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8630573/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com