我正在使用自定义TrackingParticipant来更新数据库中的某些状态信息。 由于在数据库中有时会出现不正确的值,我认为Track方法的行为不是我期望的行为。 文档说:“在派生类中实现时,用于同步处理跟踪记录” 我打算一个接一个地执行所有记录,至少对于同一个状态机实例。
我错了吗?我应该始终使用关键部分保护Track实现吗? 我对整体表现感到疑惑......当然,最重要的是系统按预期工作。
由于
答案 0 :(得分:0)
你需要实现Track()方法,所以你决定不存在线程安全的问题。
在Track()完成之前,工作流运行时将不会继续,因此您永远不会同时获得多个Track()调用。这意味着“慢”数据库插入将影响您的工作流程性能。性能最好的方法是将数据放在并发的内存中队列中,并使用后台线程来执行实际的数据库插入。