我有一个脚本可以提取一些数据并将其添加到数据库,并将图像下载到磁盘,该脚本通过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)