gpt4 book ai didi

php - 在发送响应之前立即发送到后台操作

转载 作者:搜寻专家 更新时间:2023-10-31 21:30:45 26 4
gpt4 key购买 nike

我读了很多书,但我尝试过的一切都没有奏效。我将尝试简要解释我的问题,让我们看看是否有解决方案。我正在使用使用 Yii 开发的网络应用程序。

过程是:

- Someone send a form to our web.
- Save user info in our DB
- Send that info to another web.
- Build a log and send it to admin
- 'OK' is sent to the user.

所有这些过程大约需要 20 seg。用户离开页面的时间过长。所以问题是我需要用户在保存他的信息后立即收到“确定”。像这样:

- Someone send a form to our web.
- Save user info in our DB.
- 'OK' is sent to the user.
- Send that info to another web.
- Build a log and send it to admin.

我需要使进程异步,以便在发送响应后,进程继续在后台运行。

模型中有 3 个方法: - 方法 1 -> 保存用户信息。 - 方法 2 -> 发送信息。 - 方法 3 -> 构建并发送报告。

在 Controller 中,我有一个由发送表单的网络调用的方法,它会触发所有进程并最终将“确定”发送到网络。

是这样的:

public function actionAux(){
$form = new Form();
$form->method1;
$form->method2;
$form->method3;

$this->response(); // This send the 'OK'
}

好吧,我需要按顺序触发这些方法,但 2 和 3 在后台运行,因此可以在保存用户信息后立即发送响应(方法 1)。

希望我已经解释清楚了,我可以找到解决方案。提前致谢。

最佳答案

你不能打破任何线性过程。但是为了支持您的需求类型,您需要排队工具,例如( ZeroMQBeanstalkDGearMan 等...)。

这些类型的工具非常轻便、多线程且耐用性极佳。在我当前的项目中,我正在使用 BeanstalkD。我们曾要求向 10,000 个用户发送消息,但不希望发件人等到。

  1. ZeroMQ support for php
  2. Yii (php) 扩展也可用于 beanstalk
  3. GearMan for php

一切顺利!!

关于php - 在发送响应之前立即发送到后台操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30300432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com