WP插件中的异步php代码

Ahw*_*mar 6 php wordpress curl asynchronous

需要使这块代码与其余代码异步。它会收集 wp 帖子并向我的网址发送帖子请求。该插件应异步运行,并且不会妨碍 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);
}
Run Code Online (Sandbox Code Playgroud)

dou*_*arp 1

在 WordPress 中处理异步请求的正确方法是使用 WP-Cron 来安排事件。您可以安排它运行一次,也可以按一定时间间隔运行。请参阅此处的一些设置指南。要检查的两个主要函数是wp_schedule_event()wp_schedule_single_event()

但要记住的一件事是,由于您的代码仅在有请求时运行,因此如果流量较低,则您的计划事件可能不会按预期运行。我在我的网站上写了一篇关于如何将 crontab 与 WP-Cron 结合使用以更准确地安排事件的文章:http://justinsilver.com/technology/wordpress/disable-wp-cron-wordpress/