타운광장토픽게시판

https://xetown.com/rxe_file/874593

 

요 위젯이 미세먼지 값등 대기상태를 현위치를 기준으로 사이트 방문자들에게 제공해줘서 요즘 같은 미세먼지 걱정이 많은 분들에게 사이트 방문시 중요한 정보로 제공되게 됩니다.

 

그런데 제가 모티터링 하다가 통합대기의 값을 api에서 제대로 받아오지 못하는 것을 확인하고 이것 저것 해봤습니다.

 

지금 통합대기 상태가 "좋음" 으로 표시되고 있다면 

정말 값이 숫자가 적어서 "좋음" 인지 아니면 값이 아예 없는 Null 임에도 "좋음" 으로 표시되고 있는지 확인해 보실 필요가 있습니다.

 

PC용 스킨에서는 "좋음" 을 클릭해야 실제 값을 확인할 수 있습니다.

만약 Null 값을 보여주고 있다면 지금 사이트에서는 api에서 값을 계속 못받아오고 있을 확율이 꽤 높습니다.

 

 

제가 지금까지 확인한 바로는 위젯 코드 중에 timeout  이 "3" 으로 되어 있습니다.

이 값을 늘려주면 아마 받아오지 못해 늘 "좋음" 으로 표시되는 곳이 제대로 받아 올 수 있을 것이라는 판단입니다.

 

 

해외의 서버와 통신이 잘 되는 것은 각 사이트의 입주한 서버마다 다르므로 이 값이 얼마여야 한다는 것으로 정하기는 어렵습니다. 다만 3초로 세팅된 것이 현실적으로는 가능하지 않을 수 있으니 늘려줘야 할 것 같습니다.

 

저희는 5초로 늘리고 굉장히 많은 개선이 되었던 것 같은데(결과를 보고 역으로 내가 무엇을 했는지 추적한 ..) 그래도 종종 값을 받아오는데 실패하고 있어 오늘 10초로 늘리고 모니터링 중입니다.

 

 

그리고 값이 없는 경우 "좋음" 이 아닌 "미수신"으로 표시를 하게 해 놓아서 문제가 있을때 바로 확인이 되도록 해 보았습니다.

 

elseif(1 < $aqi)
{
$scale->bgcolor = '#009966';
$scale->color = '#fff';
$scale->level = '좋음';
}
else
{
$scale->bgcolor = '#2524FF';
$scale->color = '#fff';
$scale->level = '미수신';
}
 

 

이렇게 고쳐봤구요. 위 타임아웃과 위 고쳤다는 부분 모두 api.func.php 파일입니다.

 

 

* 그리고 이 문제가 아닌 api 자체적인 문제가 종종 있어서 이것과 상관 없이 값을 못받아오 는 경우가 섞여 있어 판단하는데 어려움이 생길 수도 있습니다.

- 방금 저희 사이트에서 또 값을 가져오지 못해 api 상태를 직접 확인해보니 Null 이 뜨던군요.

https://api.waqi.info/feed/geo:10.3;20.7/?token=demo 이것으로 확인해 봤습니다.

 

*api 자체가 간혹 값을 제대로 전송해주지 못하는 경우가 있으니 갱신주기를 너무 길게 1시간 이렇게 설정하시면 정상적이지 않은 값으로 너무 오랜기간 유지가 될 수 있으니 10분 정도로 짧게 하시는게 지금 상황으로서는 좋을 것 같습니다.

글쓴이 웹지기

profile
XE와 라이믹스를 운영하며 알게된 노하우를 공유합니다.
https://rxtip.kr/ 라이믹스 꿀팁
  • profile

    마지막에 api에서 정상값이 아닌 것을 반환할 경우에 대비해 아래와 같은 조치도 해줄 수 있습니다. 정상 값이 아니면 캐시하지 않고 중지해서 다음 페이지 로딩시에 다시 값을 가져오게 되어서 잘못된 값을 기록해서 노출하는 것을 막을 수 있습니다.
    https://xetown.com/qna/962280