php执行时间较长任务,怎么在web端输出实时结果
php执行群发邮件、消息等任务,怎么样在web端输出实时的结果?
回复内容:
php执行群发邮件、消息等任务,怎么样在web端输出实时的结果?
两种思路,一种是把多条任务分拆成单条任务,然后前端每次发一个请求,不过这种不是很靠谱,如果浏览器崩溃或者网络断掉就挂掉了。比较适合对任务的完整性要求不高,而且需要快速实现的场合。
另外一种思路就是后端做一个脚本异步接收任务队列,然后把任务完成的情况写入到一个缓存中,浏览器端通过每隔一段时间去取这个缓存结果来获知后端脚本的运行情况。
php + redis 任务队列 或 gearman
可以使用flush
函数来查看实时结果,或者打开ob缓存,然后使用ob_flush
和flush
函数来将程序缓存强制刷新到浏览器查看结果。希望对你有用!
一种方法是使用设置较长的执行时间并使用ob系列函数即时输出内容, 一种是Html5 Websocket + php socket
最简单是每输出一次结果都进行flush,如果是nginx要把buffer设置得尽可能小
做成队列,慢慢执行,执行完成改状态,开一个页面查询最新执行完成的任务
web端=>任务队列
根据经验,这种方式比较好
http://my.oschina.net/u/657911/blog/178677
有何不妥嗎?
可以參照 wordpress 在線安裝更新時採用的解決方案
发送一条,浏览器刷新一次,继续执行下一条。url中记录执行到哪一步了,比如规定发送5封邮件为一步,xxx/send.php?step=1 执行完成后,页面刷新,跳转到xxx/send.php?step=2 ,依次类推。刚才踩我答案 ,基本可以判断为经验不足的菜鸟,连这种方案都没见过。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

登录 CakePHP 是一项非常简单的任务。您只需使用一项功能即可。您可以记录任何后台进程(如 cronjob)的错误、异常、用户活动、用户采取的操作。在 CakePHP 中记录数据很容易。提供了 log() 函数
