//流程一 class Factory { public static function get($item) { switch ($item->status){ case 1; return new a($item); case 2; return new b($item); ... } } } //流程二 class a { public function aa($item) { //DB BEGIN //set status = 2 //DB COMMIT //catch DB ROLLBACK } } 首先我们排除使用悲观锁这种方法。
如代码所示,现在处理数据时会先进入工厂类判断数据状态,然后到不同的类中去处理数据。
但是在高并发下,流程二没走完的情况下,数据状态没更新,第二次请求还会走到流程二中去处理。
这种情况 有什么好的方法去处理?
