需要使此代码块与其余代码异步。它将收集wp帖子并向我的url发送一个帖子请求。插件应该异步运行,不会妨碍wordpress站点的运行。
for ($x=0; $x<=n; $x++) {
$data = posts[$x];
$ch = curl_init('http://myurl.com/');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'ACCEPT: application/json',
'Content-Length: ' . strlen($data))
);
$result = curl_exec($ch);
curl_close($ch);
}
发布于 2014-11-09 02:54:00
在WordPress中处理异步请求的正确方法是使用WP-Cron来调度事件。您可以安排它运行一次,也可以在一段时间内运行。请参阅一些关于设置这里的指南。要签出的两个主要功能是wp_schedule_event()
和wp_schedule_single_event()
。
但是,要记住的一件事是,因为您的代码只有在有请求时才会运行,如果流量很低,那么您的预定事件可能不会按预期运行。我在我的网站上写了一篇文章,介绍如何将crontab与WP-Cron结合使用,以便更准确地安排事件:http://justinsilver.com/technology/wordpress/disable-wp-cron-wordpress/。
发布于 2014-11-09 01:47:23
使用口香糖包,代码示例:
$request = $client->createRequest('GET', ['future' => true]);
$client->send($request)->then(function ($response) {
echo 'Got a response! ' . $response;
});
看你怎么能安装它。此外,还可以查看RingPHP与未来对策以获得其他信息。实际上,RingPHP被用作Guzzle
中的处理程序层,而在底层,反应/承诺提供了对PHP
的Promises/A
支持。
https://stackoverflow.com/questions/26826780
复制相似问题