워드프레스 Cron Job 관리 추천 플러그인(WP Control)
Cron이라고 불리는 기능은 서버가 특정 시간에 특정 명령어나 스크립트가 자동으로 동작하도록 도와준다. 주기적으로 업데이트 파일을 확인하거나 특정 시간에 백업을 자동으로 시키는 등의 작업을 할 때 바로 Cron이라는 기능을 사용한다.
개발자가 아니라면 특별히 쓸 일이 없는 기능이지만, 일반적인 워드프레스 사용자 중에서 RSS 플러그인으로 데이터를 가져오는데 가져오는 주기를 변경해야 할 때와 같은 특수한 상황에서는 필요할 때가 있다.
서버를 직접 다룰 수 있게 허용되는 경우에 서버에 직접 세팅할 수도 있지만 워드프레스에서 제공하는 WP-Cron기능을 활용할 수 있다. 둘의 차이점이라고 하면 서버에 직접 세팅한 경우 ‘세팅한 시간’에 맞추어서 기능이 동작한다는 점이다. 워드프레스의 Cron 이벤트를 활용하면 사이트에 방문자가 없는 경우에 작동하지 않는다. 누군가 사이트를 방문하여 서버로부터 데이터를 요청할 때에 비로소 세팅된 Cron이벤트가 실행된다.
예를 들어 매일 12시에 자동으로 A라는 함수가 작동되도록 세팅했는데 그 시간에 사이트가 방문자가 없다면 방문자가 올 때까지 기다려야 해당 이벤트가 일어난다는 얘기다. 즉, 12시 30분에 방문자가 있다면 그 때 A라는 함수가 작동된다는 점이다. 서버에 직접 크론탭을 사용하면 이런 문제에서 자유롭다. 사이트 방문자가 있건 없건 서버에서 실행되기 때문이다.
만약 워드프레스에서 Cron을 관리해야 한다면 다음의 플러그인을 추천한다.
무료 플러그인이다. 이미 많은 10만명 이상이 사용 중인 인기 플러그인이다. WP Control을 사용하면 워드프레스에 세팅된 모든 WP-Cron 이벤트를 확인할 수 있다. 이미 세팅된 WP-cron의 스케줄을 수정할 수도 있으며 신규 WP-Cron을 추가할 수 있다.
아래는 플러그인의 ‘Cron Schedules’에서 보여주는 스케줄 리스트의 일부이다. Cron 이벤트에서 스케줄 리스트에 등록된 스케줄로 세팅을 할 수 있다. 완전 새로운 스케줄이 필요하다면 간단하게 추가할 수 있다.
아래의 이미지는 신규 Cron 스케줄을 세팅하는 부분이다.
- Internal Name : 알아보기 쉽게 영문으로 적는다. (함수명처럼 띄어쓰기 하지 않고 적는다.
- Interval(seconds) : 반복되는 주기를 ‘초’로 설정한다. 하루는 ‘86,400’초.
- Display Name : 한글로 적어도 된다. 알아보기 쉬운 것으로 적으면 됨.
플러그인 메뉴 중에서 ‘Cron Events’라는 탭에서는 모든 이벤트 리스트를 보여준다. 아래 이미지는 그 중에서 워드프레스에서 자체 세팅한 Cron 이벤트의 일부이다.
Hook명, Action명, 반복주기 등의 내용이 나온다.
다시 말하면 새로운 Cron이벤트를 설정할 때 특정 함수를 hook으로 추가하고 이 정보를 기본으로 ‘스케줄’을 세팅하는 것이다.
새로운 Cron추가 버튼을 누르면 아래와 같은 폼이 나온다.
Event Type은 그대로 두고, Hook Name을 적고 나서 최초 시작일과 시간을 세팅한다. 만약에 작업을 반복 시킬 것이라면 Recurrence에서 스케줄을 선택하면 된다. 만약에 기존에 존재하는 Cron을 수정한다면 해당 Cron을 선택하여 상황에 맞게 수정하면 된다.
가장 효과적인 크론(Cron)설정은 서버에서 직접 하는 것이 좋겠지만 호스팅을 이용하는 경우에 서버 세팅을 직접 할 수 없는 제한 사항이 있다. 이를 보완하기 위해서 Crontab 서비스를 유료로 제공하는 업체를 이용하는 경우도 있다. 하지만 사이트 방문자가 꾸준히 있고, 매우 정확한 시간에 구동할 필요가 없는 이벤트라면 WP-cron을 활용하는 것도 괜찮고 간단한 방법이다.
최근 글(Recent Post / 最近的帖子)