在保存数据时停止并重新启动需要RAM的python脚本(linux)

在保存数据时停止并重新启动需要RAM的python脚本(linux),python,scheduled-tasks,jobs,Python,Scheduled Tasks,Jobs,我有一个python 2.7脚本,它接受各种参数。对于任何参数的选择,都需要非常大的RAM,因此一次最多只能运行一个脚本实例 我希望有多个具有不同参数集的实例,每48小时轮换一次,每次都将一些数据保存到硬盘中,以便以后可以继续。换句话说,假设我有两组参数{x1,x2},和{y1,y2},我想轮流处理。我想实现这样的目标: while True: execute myscript.py x1, x2 sleep 48 hours tell myscript.py to s

我有一个python 2.7脚本,它接受各种参数。对于任何参数的选择,都需要非常大的RAM,因此一次最多只能运行一个脚本实例

我希望有多个具有不同参数集的实例,每48小时轮换一次,每次都将一些数据保存到硬盘中,以便以后可以继续。换句话说,假设我有两组参数{x1,x2},和{y1,y2},我想轮流处理。我想实现这样的目标:

while True:
    execute myscript.py x1, x2 
    sleep 48 hours
    tell myscript.py to stop and save a bunch of data to a file
    execute myscript.py y1, y2
    sleep 48 hours
    tell myscript.py to stop and save a bunch of data to a file

这里最好的方法是什么?我正在使用linux

Stackless-Python就是这个问题的答案,因为它可以在任何给定的时间序列化完整的Python进程&然后稍后重新启动它


我希望这不是重复的,但我找不到解决方案,或者我无法理解在这种情况下应用它们。为什么脚本占用了这么多内存?难道算法不能优化到更少的内存消耗,这样你就不会有这个问题了吗?也许对于睡眠我很好奇;您能告诉我们更多关于您正在运行的问题/算法的种类吗?“非常大量”的内存是多少?这是每个问题的数据集还是参考表,还是??对于这样长的运行时间,在Cython或C++中,对算法的某些部分进行编码可能是值得的。而且,默认情况下Python只使用一个处理器核心;通过适当的线程,您可能会获得4倍或更高的速度。非常感谢@HughBothwell,但不幸的是,这个项目太大,无法在评论部分讨论。我现在确实在做cythong,但同时我想得到一些结果。我认为这是行不通的。我没有根特权,也不能安装stackless python。你不需要前者来完成后者。显然,您需要访问构建工具。但是如果你能用cython,那应该不是问题。。我会和我的管理员核实一下。谢谢