背景:
有个耗时比较长的程序,每算一条记录,需要几百毫秒。而我要算几百万条。
数据量不大,整个读到内存也就几十兆。
程序计算的结果,要写到数据库。
问题:
由于各种原因,比如网络状况不好,有时候程序会突然崩溃。怎样能做到当程序崩溃再次运行时,能从崩溃的地方开始运行,不用重头开始计算。
现在的程序是每算出一条,就往数据库里写一条数据。(不是我写的)
比如我算到 50 多万条,程序崩溃了,现在的解决办法是删除数据库里面的数据,重新计算,插入。
我的想法是生成一个待计算的任务列表,每计算 1 万条往数据库里写一次,当成功后把这一万条的任务从任务列表里面删除。中间碰到任何情况,把待计算的任务列表写入文件。
下次就可以读取文件中的任务来计算了。
有个耗时比较长的程序,每算一条记录,需要几百毫秒。而我要算几百万条。
数据量不大,整个读到内存也就几十兆。
程序计算的结果,要写到数据库。
问题:
由于各种原因,比如网络状况不好,有时候程序会突然崩溃。怎样能做到当程序崩溃再次运行时,能从崩溃的地方开始运行,不用重头开始计算。
现在的程序是每算出一条,就往数据库里写一条数据。(不是我写的)
比如我算到 50 多万条,程序崩溃了,现在的解决办法是删除数据库里面的数据,重新计算,插入。
我的想法是生成一个待计算的任务列表,每计算 1 万条往数据库里写一次,当成功后把这一万条的任务从任务列表里面删除。中间碰到任何情况,把待计算的任务列表写入文件。
下次就可以读取文件中的任务来计算了。