onWorkerStart=function ($conn){ Timer::add(3,function (){ $orders= MobileOrder::expired()->field('id')->select(); foreach ($orders as $order){ try { Db::startTrans(); $order=MobileOrder::where('id',$order['id'])->lock(true)->find(); $order->cancel(); Db::commit(); self::log("处理订单:{$order['id']},成功"); }catch (\Exception $e){ self::log("处理订单:{$order['id']},失败"); Db::rollback(); self::logError($e); } } }); }; } } MobileOrderExpired::run();