调试挂起多处理脚本

时间:2015-10-06 18:24:44

标签: python multiprocessing python-multithreading

我有一个脚本可以提取一些数据并将其添加到数据库,并将图像下载到磁盘,该脚本通过35个ingest_item()进程调用multiprocess.Pool函数。

我在整个脚本中有很多日志记录,但是在运行大约1-1.5天后(它有很多可以摄取),Jenkins作业上的日志输出将停止并挂起,脚本将不再是摄取数据。

我尝试添加更多日志记录来确定问题的确切位置,但似乎每次都停在不同的位置。

有人知道我可以更轻松地调试吗?

旁注:我不认为问题是硬件资源,因为服务器有64GB的RAM。

def run_ingest_item(*args, **kwargs):
    try:
        ingest_item(*args, skip_recent=True, **kwargs)
    except Exception:
        exec_info = ''.join(traceback.format_exception(*sys.exc_info()))
        logger.error(
            'Failed to ingest item: %s, Exception raised: \n %s',
            args, exec_info
        )


if __name__ == '__main__':
    pool = Pool(35)
    item_ids = get_ids_to_ingest()
    pool.map(run_ingest_item, item_ids)

0 个答案:

没有答案