PHP 请求“在后台”

发布于 2024-11-25 19:50:30 字数 144 浏览 1 评论 0原文

有没有一种方法可以让用户不必等待响应来发出 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

趴在窗边数星星i 2024-12-02 19:50:30

选项:

  1. 坚持一个数据库(或文件)并使用 cron 来轮询它(最简单,因为您可能已经使用了数据库)。
  2. 使用类似 RabbitMQØMQ我最喜欢的
  3. 使用 fork/exec (< em>不建议这样做)。
  4. 正如其他人所建议的 - 通过使用 Ajax 请求来伪造它。可行 - 但我觉得它很难看。

Options:

  1. Stick in a db (or a file) and use a cron to poll it (easiest as you probably already use a db).
  2. Use something like RabbitMQ or ØMQ (my favourite)
  3. Spawn a separate process to do it using fork/exec (would not recommend that).
  4. As others have suggested - fake it by using an Ajax request. Viable - but I find it ugly.
叶落知秋 2024-12-02 19:50:30

您也许可以通过这种方式在 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?

初见终念 2024-12-02 19:50:30

您可以通过 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.

人│生佛魔见 2024-12-02 19:50:30
exec('php script.php > /dev/null & echo $!', $o);

您可能还想使用 php-cli 而不是 php
上面的命令返回 $o[0] 中后台脚本的进程 ID,因此如果您想向用户显示进度,您可以设置一些内容以使用 ajax 或其他方式轮询它。

exec('php script.php > /dev/null & echo $!', $o);

You may want to use php-cli instead of php 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.

黑白记忆 2024-12-02 19:50:30

创建一个 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文