web服务器在什么时候开始执行请求?它是等待整个请求内容长度还是执行接收到的块?



我正在写一个PHP web应用程序,它将:(1)将数据插入mysql数据库;(2)按比例缩小并将用户上传的图片保存在目录中。如果第二个操作由于任何原因而失败——无论是网络/系统故障还是有人不小心踢出了系统电缆,那么插入到数据库中的数据将是浪费或无效的。这意味着没有失败。

那么,服务器是如何处理请求的呢?

可以使用DB事务。在事务过程中,如果出现任何错误,则不会处理所有与DB相关的插入。

这是在Laravel中如何完成的- laravel.com/docs/8.x/database#database-transactions。

这是一个在Laravel之外如何完成的例子:

try {
$db->beginTransaction();

$db->query('Insert Query');
$smallImage = $this->resizeImage($img);
$this->saveImage($smallImage);

$db->commit();
} catch (Throwable $e) {
$db->rollback();
throw $e;
}

相关内容