下面的代码在运行Java客户端通过简单地调用命令“ py scriptname.py”的服务器上运行。该脚本崩溃有一个非常特殊的用例,这使我头疼。
该脚本在任何其他时间都可以很好地运行,除非是在星期一初次运行时。我的主要怀疑是周末执行数据库的地方以某种方式“睡眠”,这会导致崩溃。如果此代码是在几分钟后手动执行的,只需执行相同的命令“ py scriptname.py”,则一切正常。
但是,这使我相信代码中存在一个基本问题。导致错误的代码是这样的:
for row in self.cursorLocal.fetchall():
sqlName = "INSERT INTO TABLE ATTRIBUTE1, ATTRIBUTE2 VALUES('{}','{}')".format(row[1],row[2])
print(sqlName) # <-- line 321
self.cursorName.execute(sqlName)
self.conName.commit()
例外: [Errno 32]管道破损
Traceback:
Traceback (most recent call last): File "C:\folder\scriptname.py", line 88, in __init__ self.InsertTo() File "C:\folder\scriptname.py", line 321, in InsertTo print(sqlName) BrokenPipeError: [Errno 32] Broken pipe
我尝试了许多不同的方案来尝试在本地环境中复制此方案,但是没有任何运气。但是,每个星期一早上都会不断发生此错误。我也真的感到困惑,为什么打印语句会引发错误。