뉴스룸 자동화 후속조치
2020. 6. 25. 17:23ㆍ취미로 하는 개발
기존에 구축했던 뉴스룸 자동화를 약 2주간 사용하면서 많은 문제가 있었다.
1. 크롤링 트리거를 PHP 코드에 넣다보니 호출시마다 불필요한 크롤링이 계속 실행되었다.
2. CPU 리소스 사용량, 네트워크 패킷량이 커서 AWS가 종종 멈추기도 하고 클라이언트 IP가 차단되기도 했다 ㅠㅠ
3. 기타 파이썬 코드를 PHP에서 실행하는 부분 때문에 온갖 문제가 많이 발생했다.
이 문제를 해결하기 위한 수정사항이 있었다.
1. 기존 Python 크롤링 결과를 print out 하고 PHP에서 받아오는 방식에서, txt파일에 담아 보관하는 부분으로 변경.
2. 결과값을 호출할 때 크롤링을 실행하는 방식에서, Crontab을 이용하여 매일 자동 실행 방식으로 변경.
Sbs.php
<?php
$fp = fopen("경로/SBSn.txt", "r") or die("파일을 열 수 없습니다!");
// 파일 내용 출력
while( !feof($fp) ) {
echo fgets($fp)."</br>";
}
// 파일 닫기
fclose($fp);
기존 python 실행 코드가 사라지고 단순히 txt파일을 읽어서 출력하는 코드로 변경되었다.
crontab -e
///
0 1 * * * /usr/bin/python3 /경로/SBSn.py > /경로/SBSn.txt
///
sudo service cron restart
매일 1시 0분(동부 표준시 기준으로 한국 기준 오전 10시) 뉴스를 크롤링해서 해당 경로에 저장하는 crontab을 등록하였다.
처음부터 이렇게 했으면 편했을텐데....
그 동안 AWS잡고 씨름했던 시간들이 참...
역시 머리가 나쁘면 몸이 고생한다 ㅠ