我对线程安全与非线程安全操作并不是很了解,但我想知道我看到的问题是否可能是因为这个问题。
在我的模块目录中,我创建了一个定义了类的模块。
然后在db.py中我有一个_after_insert触发器,如下所示:
db.workorder._after_insert.append(lambda s,f: workorderAfterInsert(s,f))
在我的_after_insert触发器中,我从我的模块中实例化了这样的类:
import workorder.sequencer as sequencer
workorderId = id
wo = db.workorder(workorderId)
sequencer = sequencer.Sequencer(workorder_id=workorderId, db=db)
sequencer.build_bom()
sequencer.sequence()
sequencer.save_sequenced_workorder()
db.commit()
我不确定如何描述它,但我发现在执行sequencer.sequence()时出现随机错误。我唯一想到的是存在线程安全或并发问题。
如果有人能告诉我这是否安全(或明智),我真的很感激。任何意见都将不胜感激。
-Jim
答案 0 :(得分:0)
我的问题是我将变量定义为类变量而不是实例变量。改变了,现在一切正常。