PHP CURl без внешки

180
13 декабря 2021, 13:50

В нашей стране очень ограничен внешний трафик либо частенько отваливается. Есть сервер внутренний, NGINX. На нем есть сайт. При открытии сайта выполняются два запроса: первый запрос отправляется на этот сервер, который в свою очередь через CURL обращается к серверу Гугл для запроса аналитики, второй запрос, по таймеру, раз в 5 сек. проверяет наличие уведомлений в БД.

Когда на сервере есть доступ к внешнему трафику, то все в порядке. Проблемы начинаются, когда на сервере отваливается внешний трафик: тот запрос, что идет на аналитику, блокирует все остальные запросы, те что по таймеру.

Запрос на аналитику, а также последующие на проверку уведомлений висят в консоли со статусом "(pending)"

Также было замечено, что если запрос на аналитику завершается с ошибкой 500, последующие запросы отрабатывают корректно. Если же запрос на аналитику завершился с ошибкой 504, то и все последующие запросы завершаются с ошибкой 504

Есть ли способ решить данную неприятность, или способ проверить, есть ли доступ к внешнему трафику.

Всем спасибо заранее

Answer 1
<?php
// Проверяем доступность
$url = 'https://site_for_out.com';
ini_set('default_socket_timeout', '10');
$fp = fopen($url, "r");
$res = fread($fp, 500);
fclose($fp);
if (strlen($res) > 0) {
//делаем что-то - например, выполняем тот же запрос к тому же ресурсу
}
READ ALSO
Вывод элементов массива в таблицу(php)

Вывод элементов массива в таблицу(php)

Нужно , чтобы колонки соотвествовали значениям , к примеру в колонке возраст только ячейки с возрастом и тд

177
Yandex.касса и Android SDK

Yandex.касса и Android SDK

Имеет место быть некий сайт с платными услугамиОнлайн реализованы отношения с кассой через API

90
Авторизация на сайте с помощью CURL

Авторизация на сайте с помощью CURL

Всем приветПытаюсь пройти авторизацию на сайте https://www

182
Ссылка на товар в корзине

Ссылка на товар в корзине

В магазине на woocommerce на товаре есть кнопка, по нажатию которой переходим на страницу корзины с формой для регистрации, в которой вводим свои...

117