Press enter to see results or esc to cancel.

wp-cron에 대하여

cron이란?

많은 사람은 매일 아침 정해진 시간에 일어나기 위해 알람 시계를 맞춰놓습니다. 하루 동안 먹어야 하는 약을 잊어버리지 않기 위해 약상자를 들고 다니는 사람들도 있습니다.

크론이라고 읽는 cron은 일종의 자동화된 알람 시계 같은 겁니다. 정해진 시간에 정해진 작업을 수행하도록 지정하는 데몬(daemon) 혹은 그 설정을 크론이라고 합니다.

cron은 리눅스의 데몬으로 떠서 백그라운드 상태로 돌면서 정해진 시간에 정해진 일을 합니다. 보통은 시간, 일, 주, 월 단위로 설정할 수 있습니다. “매주 일요일 새벽 4시에 특정 폴더를 백업해라!”, “1시간 마다 특정 사이트의 RSS를 긁어라!” 이런 명령을 지정하면 그대로 수행을 하는 거죠.

wp-cron이란?

wp-cron은 이름만 봐도 뭔지 알 것 같습니다. 워드프레스 버전 cron이죠. 워드프레스에 필요한 어떤 작업을 정해진 시간에 주기적으로 수행하는 겁니다. 예를 들어 볼까요?

  • 주기적으로 워드프레스 업데이트 버전이 있나 체크해서, 만약 있으면 관리자에게 새 버전이 있음을 표시한다.
  • 주기적으로 설치된 플러그인의 새 버전이 있나 체크해서, 만약 있으면 관리자에게 새 버전이 있음을 표시한다.
  • 주기적으로 발행 예약된 포스트가 있는 체크해서, 만약 지금이 정해진 시간이라면 발행한다.

cron과 wp-cron의 차이

wp-cron은 cron과 기능상 차이가 있는데, 가장 큰 것은 아래의 두 가지입니다.

  • cron은 리눅스 시스템 전체에서 돌아간다. 반면 wp-cron은 방문자(관리자 포함)가 워드프레스 페이지를 열 때마다 체크한다.
  • cron은 정해진 시간이 되면 반드시 작동한다. wp-cron은 방문자가 없으면 작동하지 않는다. (아무도 워드프레스 페이지를 열지 않았으니까)

그 밖에 wp-cron은 워드프레스와 관련된 작업을 수행한다는 점이 있겠지만, 이건 너무나 당연한 거겠죠?

wp-cron의 문제점

wp-cron에는 몇 가지 문제점이 있습니다. 가장 대표적인 것들은 다음과 같습니다.

  • 가끔 wp-cron이 수행할 작업을 체크한 후 제대로 종료되지 않아 서버에 영향을 끼칠 수 있습니다. 웹사이트 전체가 느려지게 되는 것이죠.
  • 예약 발행을 걸어두어도 종종 발행에 실패하게 됩니다. wp-cron이 제대로 작동했다면 아마도 이런 일이 자주 있진 않겠죠.
  • 방문자가 없으면 wp-cron은 작동하지 않으니 원하는 작업을 원하는 시간에 수행할 수가 없습니다.

wp-cron 문제 해결 방법

이렇게 wp-cron의 문제가 있다면 해결을 해야겠죠. 해결하는 방법은 크게 두 가지입니다. 아예 쓰지 않거나, 다른 걸로 대체하거나.

1. 아예 쓰지 않기

wp-config.php 에 위의 코드를 삽입합니다. 쉽죠?

2. cron으로 대체하기

wp-cron이 잘 안 돌아갈 가능성이 있다면, 무조건 정해진 시간에 수행하게 만들면 됩니다. 그럴 때는 cron을 이용하면 됩니다. 이건 무조건 돌아가니까요.

일단 이걸 하려면 cron 사용법을 알아야 합니다. 예를 들어 wptips.slownews.kr에 30분마다 wp-cron을 실행하는 cron을 만들려면 다음과 같이 하면 됩니다.

  • 리눅스 상에서 crontab -e 로 예약된 작업 수정하는 창으로 들어간다.
  • */30 * * * * wget http://wptips.slownews.kr/wp-cron.php?doing_wp_cron=1 > /dev/null 2>&1 을 추가한다.
  • esc 키 입력 > wq 입력 후 빠져나온다.

리눅스에서 cron을 어떻게 이용해야 하는지 자세한 이용법은 인터넷에 여러 자료가 있으니 찾아보세요.