我尝试使用http://php.net/manual/en/function.connection-aborted.php这样:
DB::beginTransaction();
$val = $this->setPINToUsed($request->registrationpin);
sleep(15);
if (connection_aborted() == 1) {
DB::rollBack();
}else{
DB::commit();
}
如何解决此问题。
提前致谢。
答案 0 :(得分:0)
虽然技术上可以做你要求的事情,但真的不应该这样做。
运行交易通常不是一个坏主意,不应该总是应用。而且,将冗长的过程交到客户手中也是不好的。有大量的边缘情况,比如这样的事实:你不能确定php会知道用户已经中止并且你会有逻辑,这会不时发生。
在队列中运行事务要好得多,并要求用户等待几秒钟(或几分钟?)。您可以通过AJAX请求偶尔提供更新。