php长时间处理被中断时的效果

我们的php后台服务器会保存文件到s3上,其处理过程较长,如果保存过程中客户端中断此次保持,效果如果呢。做了个实验,文件test.php代码如下:


直接运行php脚本

$ php test.php 
start
^C
$ cat testfile.txt 
start

我们可以看到由于php进程被kill,后面的end是没有执行的。

通过浏览器请求

php长时间处理被中断时的效果_第1张图片
Paste_Image.png
$ cat testfile.txt 
startend

可以看到,即使客户端请求中断掉,但后台还是将整个php流程走完,防止事务中断。

产生问题

  • 客户端长时间请求时,中断后马上又发起请求,如果此次请求数据与前面未完成的数据有冲突的时候,将产生错误。

个人想法

  • 如果存在冲突数据,需要做好数据的同步
    -长时间请求,客户端做好用户交互,减少客户中断

你可能感兴趣的:(php长时间处理被中断时的效果)