У меня есть этот код, который выполняется всякий раз, когда обновляется продукт / публикация. Это автоматическое обновление, зацикливается или обновляет слишком много записей, и я получаю тайм-аут ошибки 504. Но когда я удаляю l oop и обновляю только одну запись, он успешно выполнил код. Мой вопрос: как я могу запустить этот $result =file_get_contents($url . $product_id, false, $context);
в фоновом режиме или есть лучший способ избежать ошибки 504? Спасибо!
add_action('woocommerce_update_product', 'my_product_update', 10, 2);
function my_product_update($product_id, $product) {
$updating_product_id = 'update_product_' . $product_id;
if ( false === ( $updating_product = get_transient( $updating_product_id ) ) ) {
$url = 'http://example.com/autoUpdate.php?product_id=';
$result =file_get_contents($url . $product_id, false, $context);
set_transient( $updating_product_id , $product_id, 2 ); // change 2 seconds if not enough
}
}