Модуль формирует запрос, веб-сервис отправляет и получает ответ.
Нужно тот, что формирует запрос, нужно подредактировать, чтобы не перегружать поставщиков
Это прописывается прямо в файле вебсервиса поставщика. Грузят поставщиков поисковые боты. Их нужно исключить таким способом.
В начале файла вебсервиса прописываем
function forumautoIsBot(&$botname = ''){
/* Эта функция будет проверять, является ли посетитель роботом поисковой системы */
$bots = array(
'rambler','googlebot','aport','yahoo','msnbot','turtle','mail.ru','omsktele',
'yetibot','picsearch','sape.bot','sape_context','gigabot','snapbot','alexa.com',
'megadownload.net','askpeter.info','igde.ru','ask.com','qwartabot','yanga.co.uk',
'scoutjet','similarpages','oozbot','shrinktheweb.com','aboutusbot','followsite.com',
'dataparksearch','google-sitemaps','appEngine-google','feedfetcher-google',
'liveinternet.ru','xml-sitemaps.com','agama','metadatalabs.com','h1.hrn.ru',
'googlealert.com','seo-rus.com','yaDirectBot','yandeG','yandex',
'yandexSomething','Copyscape.com','AdsBot-Google','domaintools.com',
'Nigma.ru','bing.com','dotnetdotcom','YandexBot','Googlebot','mj12bot.com'
);
foreach($bots as $bot)
if(stripos($_SERVER['HTTP_USER_AGENT'], $bot) !== false){
$botname = $bot;
return true;
}
return false;
}
Далее, в запросе
if (!forumautoIsBot()) {
// Выполнение запроса к серверу
Код запроса
// Обработка ошибки
} else {
// Результат запроса
}
Вебсервисы находятся в папке /tdmcore/webservices/
Надеюсь вам поможет ответ.
И я прошу помощи с вебсервисами.
Вебсервисы работают только при Лимит Socket mode: 100
Но при данном параметре сильно долгий ответ и бд часто уходит в таймаут. Да и клиенты не будут ждать кучу времени или обновлять страницу.
В описании написано:
Если товаров на странице больше указанного - то запрос будет выполнен в фоновом режиме. Страница покажется пользователю сразу, не дожидаясь цен от вебсервиса. При этом в фоновом режиме будет обработан ответ от вебсервиса и цены сохранятся в базу модуля. Метод работает только если включено кэширование. Главное назначение метода - что бы пользователь не ждал долго загрузки страницы с большим количеством товаров.
Т.е. вебсервис должен отрабатывать и при параметрах ниже 100, и кешировать цены, но этого не происходит.
Кто-нибудь, подскажите в чём ошибка?