美文网首页
php长时间处理被中断时的效果

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

作者: 金色的清晨 | 来源:发表于2016-09-29 11:47 被阅读0次

我们的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流程走完,防止事务中断。

产生问题

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

个人想法

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

相关文章

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

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

  • PHP非阻塞实现方法

    转自https://www.awaimai.com/660.html 为让 PHP 在后端处理长时间任务时不阻塞,...

  • Linux软中断

    中断是一种异步的事件处理机制,可以提高系统的并发处理能力。 中断处理程序在响应中断时,还会临时关闭中断。这就会导致...

  • 用PCNTL实现PHP多进程

    PHP的进程控制支持实现了Unix方式的进程创建, 程序执行, 信号处理以及进程的中断。 进程控制不能被应用在We...

  • Linux 中断和内存同步

    中断和中断处理.中断: 由于处理器和外设速度上的差异, 在两者协同工作时, 让硬件在需要时再向内核发出信号.特殊的...

  • swift 音频被中断处理

    1、监听音频打断事件 2、在通知方法中处理音频中断事件AVAudioSessionInterruptionType...

  • 中断和InterruptedException

    1、代码示例 2、如何处理中断 当发生中断异常时,我们有几种处理手段: 不捕获InterruptedExcepti...

  • 避免阻塞

    在实际项目中,对于前端发过来的请求,需要在后端进行长时间的处理,但为了更好的用户体验,让PHP在后端处理时能快速响...

  • 2017年12月15日

    ARM中断:NVIC,当中断发生时,NVIC 将比较新中断与当前中断的优先级,如果新中断优先级高,则立即处理新中断...

  • 嵌入式中断处理的简单描述

    嵌入式中断处理的简单描述 ## 通用的中断处理过程: 中断源---》中断路径---》中断响应 中断由中断源发出,进...

网友评论

      本文标题:php长时间处理被中断时的效果

      本文链接:https://www.haomeiwen.com/subject/waikyttx.html