Re: [Модуль] Погода от Openweather
Добавлено: Ср сен 26, 2018 11:05 pm
догадаются, если не решить проблему с ддосом их сервера. у них просто нет выхода
Полгода мучился, иногда получал одни нули от openweather, дописал в минутный цикл проверку: если давление 0 то обновляем данные (и печатаем сообщение об этом). Убедился что в течении нескольких часов не получилось получить прогноза.nick7zmail писал(а): ↑Вс авг 19, 2018 7:40 amА если температура реально равна нулю?)))Kiruxa писал(а): ↑Чт июл 19, 2018 9:27 amСтолкнулся с такой же проблемой много времени назад. У всех наших Majordomo обновление происходит раз в час, как следствие перегружаем сервер погоды. Я вышел из этой ситуации таким образом: если полученные текущие температура и влажность равна 0, считаю что данные не получены, запускаю таймер на повторное обновление погоды через 5 минут.
Код: Выделить всё
if (gg('ow_fact.pressure_mmhg')!=0 and gg('ow_fact.humidity')!=0) { sg('InternetWeather.Temperature',gg('ow_fact.temperature')); sg('InternetWeather.Humidity',gg('ow_fact.humidity')); sg('InternetWeather.Pressure',gg('ow_fact.pressure_mmhg')); sg('ThisComputer.TempOutside',gg('ow_fact.temperature')); sg('ThisComputer.SunSetTime',date("H:i",(gg('ow_day0.sunset')))); sg('ThisComputer.SunRiseTime',date("H:i",(gg('ow_day0.sunrise')))); $Now = "<img src=\"/cached/openweather/image/".gg('ow_fact.image').".png\"><br />(".date("H:i",time()).") <b>Сейчас:</b><br /> Температура: ".gg('ow_fact.temperature')."°C<br />".gg('ow_fact.weather_type')."<br />Облачность: ".gg('ow_fact.clouds')."%<br />Давление: ".gg('ow_fact.pressure_mmhg')." мм.рт.ст<br />ветер: ".gg('ow_fact.wind_direction_full')." ".gg('ow_fact.wind_speed')." м/с<br />влажность: ".gg('ow_fact.humidity')."%<br />"; sg('InternetWeather.Now',$Now); } else { $alive_timeout=5*60; say('Ошибка обновления погоды',1); say('Попробую обновить погоду через 5 минут',1); setTimeOut("OpenWeatherMap_retry","runScript(\"OpenWeatherUpdate\");",$alive_timeout); }
Можно как нить адекватнее проконтролировать через isset или isempty? Я бы внёс в модуль поправки, и не записывалось бы если бы были нулевые значения, и сразу таймер бы выставлялся. Но на эксперименты пока нет времени. Если бы было конечное решение сразу.