我对线程安全操作和非线程安全操作并不是很了解,但是我想知道我看到的问题是不是因为这个原因。
在我的模块目录中,我创建了一个模块,它定义了一个类。
然后在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
发布于 2015-07-24 01:25:13
我的问题是,我将变量定义为类变量,而不是实例变量。改变了这一点,现在一切都正常了。
https://stackoverflow.com/questions/31575008
复制相似问题