PHP 请求“在后台”
有没有一种方法可以让用户不必等待响应来发出 PHP 请求?某种“后台的 php 请求”?
例如,如果应用程序需要发送 100 封电子邮件,因为用户提交了某些内容,我不想为该用户显示“正在发送...请等待”,但我希望其他一些脚本独立于该用户来完成这项工作...
Is there a way to make PHP request where user doesn't have to wait for response? Some sort of "php request in background"?
For example, if application needs to send 100 emails because the user had submitted something, I don't want to show "sending... please wait" for this user, but I want some other script to do the job independent from that user...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
选项:
Options:
您也许可以通过这种方式在 Ajax 中发送请求,UI 不会冻结并且任务将在服务器上执行?
You can maybe send the request in Ajax this way to UI won't freeze and the task will be executed on the server?
您可以通过 ajax 发送请求,然后在成功后将用户重定向到其他地方。服务器脚本仍将处理,但不会向用户提供确认。
You could send the request via ajax and then redirect the user elsewhere upon success. The server script will still process, but no confirmation will be given to the user.
您可能还想使用
php-cli
而不是php
。上面的命令返回 $o[0] 中后台脚本的进程 ID,因此如果您想向用户显示进度,您可以设置一些内容以使用 ajax 或其他方式轮询它。
You may want to use
php-cli
instead ofphp
as well.The command above returns the process id of the background script in $o[0] so you can set something up to poll it with ajax or somethig if you want to show the user it's progress.
创建一个 php 例程来执行发送电子邮件的实际工作,并使用技术 此处描述。
Create a php routine to do the actual work of sending the emails and call it via http GET using the technique described here.