Запускать в фоновом режиме при обновлении сообщения - PullRequest
0 голосов
/ 05 мая 2020

У меня есть этот код, который выполняется всякий раз, когда обновляется продукт / публикация. Это автоматическое обновление, зацикливается или обновляет слишком много записей, и я получаю тайм-аут ошибки 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
    }
}
...