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

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

<?php
$myfile = fopen("testfile.txt", "w");
echo "start\n";
fwrite($myfile, "start");
sleep(20);
echo "end\n";
fwrite($myfile,"end");
fclose($myfile);
?>

直接运行php脚本

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

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

通过浏览器请求

Paste_Image.png
$ cat testfile.txt 
startend

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

产生问题

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

个人想法

  • 如果存在冲突数据,需要做好数据的同步
    -长时间请求,客户端做好用户交互,减少客户中断
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • https://aws.amazon.com/cn/s3/faqs/#sia_anchor Amazon Simp...
    守望者_1065阅读 12,671评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,068评论 19 139
  • 第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 32,920评论 24 1,002
  • 并不是第一次住校,却好像第一次般不适应。 报到的时候是第二天,所有人都已经收拾妥当端坐在书桌前,我推门进去,拖着自...
    彼得潘潘阅读 3,047评论 0 2

友情链接更多精彩内容