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 ,依次类推。刚才踩我答案 ,基本可以判断为经验不足的菜鸟,连这种方案都没见过。

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

To work on file upload we are going to use the form helper. Here, is an example for file upload.

In this chapter, we are going to learn the following topics related to routing ?

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Validator can be created by adding the following two lines in the controller.
