WordPress — Асинхронный PHP-код в WP Plugin

Необходимо сделать этот блок кода асинхронным с остальным кодом. Собирается собирать посты 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);
}

4

Решение

Правильный способ обработки асинхронных запросов в WordPress — использовать WP-Cron для планирования события. Вы можете запланировать его запуск один раз или с интервалом. Смотрите некоторые инструкции по настройке Вот. Две основные функции для проверки являются wp_schedule_event() а также wp_schedule_single_event().

Однако следует помнить одну вещь: поскольку ваш код выполняется только при наличии запроса, при малом трафике, возможно, запланированное событие не будет выполняться, как ожидается. Я написал на своем сайте статью о том, как вы можете использовать crontab в сочетании с WP-Cron для более точного планирования событий: http://justinsilver.com/technology/wordpress/disable-wp-cron-wordpress/.

1

Другие решения

использование Пакет жрет, Пример кода:

$request = $client->createRequest('GET', ['future' => true]);
$client->send($request)->then(function ($response) {
echo 'Got a response! ' . $response;
});

Посмотри как ты можешь установить его. Также проверьте RingPHP и будущие ответы для некоторой дополнительной информации. На самом деле RingPHP используется в качестве уровня обработчика в Guzzle и внизу Реагировать / Promise дает Promises/A Поддержка для PHP,

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector