我有一个已经运行了一段时间的python程序,由于一个意料之外的事件,我现在不确定它会在合理的时间内完成。然而,到目前为止收集的数据很有价值,如果可能的话我想恢复它。
以下是相关代码
from multiprocessing.dummy import Pool as ThreadPool
def pull_details(url):
#accesses a given URL
#returns some data which gets appended to the results list
pool = ThreadPool(25)
results = pool.map(pull_details, urls)
pool.close()
pool.join()
所以我要么需要访问当前位于results
的数据,要么以某种方式更改代码的来源(或者以某种方式手动更改程序的控制)以终止循环,以便继续导出数据的程序的后续部分(不确定第二种方式是否可行)。
似乎第一个选项也很棘手,但幸运的是我使用的IDE(Spyder)表示我假设的值是机器内存中列表的位置( 0xB73EDECCL)。
是否可以创建一个C程序(或其他python程序)来访问内存中的这个位置并阅读那里的内容?
答案 0 :(得分:0)
您是否可以使用某种机制在两个进程(如队列或管道)之间交换数据。
如下所示: 来自多处理导入队列 从multiprocessing.dummy导入池作为ThreadPool
def pull_details(args=None):
q.put([my useful data])
q = Queue()
pool = ThreadPool(25)
results = pool.map(pull_details(args=q), urls)
while not done:
results = q.get()
pool.close()
pool.join()