Cakephp 异步请求操作

Cakephp 异步请求操作,cakephp,asynchronous,Cakephp,Asynchronous,请帮帮我 “你是我唯一的希望” 我需要异步执行一个动作数千次。该操作应该从外部API获取电子邮件内容,并且它位于不同的控制器中,因此我使用requestAction来获取它。当我得到所有结果时,这1000封电子邮件内容将在一次请求中以1000封电子邮件的形式发送,使用其他API 不幸的是,当按顺序运行时,需要花费大量时间,所以我需要异步运行这些请求 我的问题是: 我能执行吗 $this->requestAction($myUrl) …平行地?例如,一次100个请求?我在PHP中看到了一些

请帮帮我

“你是我唯一的希望”

我需要异步执行一个动作数千次。该操作应该从外部API获取电子邮件内容,并且它位于不同的控制器中,因此我使用requestAction来获取它。当我得到所有结果时,这1000封电子邮件内容将在一次请求中以1000封电子邮件的形式发送,使用其他API

不幸的是,当按顺序运行时,需要花费大量时间,所以我需要异步运行这些请求

我的问题是: 我能执行吗

$this->requestAction($myUrl)
…平行地?例如,一次100个请求?我在PHP中看到了一些异步示例,但它们都使用静态文件,我需要保留CakePHP结构,以便能够使用requestAction

感谢所有能帮忙的人


编辑:顺便说一下,当我试图通过fopen($url,'r')运行请求时;然后流式获取内容的效率比最差的要差,但可能还可以提高。不知道,但requestAction似乎绝对是更好的选择(我认为)。

最后,我无法找到使用requestAction的解决方案,但我能够将代码提取到一个独立的php文件中,然后使用include方法处理

最有趣的部分,异步请求,是使用名为cURL easy的大型库以及我的实用函数完成的。您可以在此处阅读有关它的信息(如何安装和使用它):


您有什么理由不使用shell来实现此目的吗? 请看:

“延迟执行”可能就是您在这里想要的,基本上您希望发送一个命令,而不是让用户等待它?如果是这样,那么您可以使用消息队列非常轻松地处理此问题

我们使用CakeResque和Redis发送1000封电子邮件并执行其他API调用

还有其他可用的消息队列,但这非常容易使用,可能不需要对代码进行太多更改