본문 바로가기

Javascript/Parse

[Parse] background job 사용하기


Parse SDK 에서 background job을 이용하여 일정 주기, 또는 일정 시점에 코드를 실행시킬 수 있습니다. (batch, cronjob 기능)

이 background job 기능을 사용하여 매일 24:00 시 마다 오늘의 유저 랭킹 등을 계산하는 기능을 제작하는것이 가능합니다. 또는 일정 주기마다 플레이어에게 돈을 주는 작업 (하지만 이런 작업은 백그라운드 잡이 아닌 다른 방법으로 구현하는게 좋다고 생각합니다.) 또한 수행할 수 있습니다.



parse command line tool 설치하기

https://github.com/ParsePlatform/parse-cli/releases/tag/release_3.0.3

먼저 서버 코드를 deploy 하기 위해 명령줄 프로그램이 필요합니다. 위 링크에서 플랫폼에 맞는 버전을 다운로드받습니다.

환경 변수 등을 설정한 후 실행 가능 상태가 되면 쉘에 'parse' 를 입력합니다. 아래와 같이 출력되면 성공입니다.


parse new
명령를 입력해 로그인 정보와, 앱 정보를 기입 후 로컬 파일 디렉토리를 지정합니다.

You can either set up a blank project or download the current deployed Cloud Code.
Please type "(b)lank" if you wish to setup a blank project, otherwise press ENTER:

위와 같은 메세지가 나오면 엔터를 누릅니다. 엔터를 누를 경우 기본적인 템플릿 코드가 같이 생성됩니다.
만약 b 키를 누르면 템플릿 코드 없이 클린한 환경이 구성됩니다.


이후에 템플릿 디렉토리가 생성되면 해당 디렉토리로 cd /cloud/main.js 파일을 오픈합니다.
이곳에는 베이스 코드가 작성되어 있지만, 이는 우리가 원하는 background job의 베이스 코드가 아닙니다.

코드를 아래와 같이 수정합니다. 이 코드는 parse doc의 background job 기본 예제의 변형입니다.

이 코드는 TestObject의 num 컬럼을 계속해서 1씩 증가시킵니다.




클라우드 서버에 코드 디플로이

parse deloy
명령어를 실행하면 자동으로 parse에 코드가 올라갑니다.


올라간 코드는 대시보드에서 확인할 수 있습니다.
대시보드에 접속하면 아래와 같은 화면이 표시됩니다. 여기서 코드가 정상적으로 올라갔는지를 확인이 가능합니다.




주기적으로 실행시키기

아직은 코드만이 deploy 됬을 뿐, 실제로 일정 주기마다 코드가 실행되지는 않습니다. 이를 위해 Jobs -> Scheduled Jobs에 들어갑니다.



Schedule a job 을 클릭하면 새 작업을 만들 수 있습니다.


Job에 대한 기본 정보를 설정합니다, 설명, 실행할 background job, 파라미터를 설정합니다.

우리의 job은 파라미터를 사용하지 않지만, 추후에 파라미터를 추가할 수 있습니다.


실행 시간 정보를 입력합니다. 매일 지정된 시간 또는, 지정된 분/시간마다 실행하도록 할 수 있습니다.

기본적으로 설정된 실행시작시간은 12:00 입니다. 이는 한국 시간이 아니기 때문에 설정에 주의하시기 바랍니다. 만약 설정 이후에 지정 주기마다 job이 시작되지 않으면 스타트 타임을 확인해 주세요.



등록이 완료되면 방금 추가한 정보가 job 목록에 새롭게 표시됩니다.

기본적으로 설정된 스케쥴에 맞게 실행되지만 Run now 를 눌러서 지금 당장 실행할 수도 있습니다.




실행 결과 확인하기

Job status 화면에서는 최근에 실행된 job의 실행 결과와 메세지, 실행 시각을 확인할 수 있습니다.

이곳에 표시되는 message는 job 코드에서 status.message() 함수를 통해 설정이 가능합니다.


Log 탭에서는 실행된 background job의 로그를 볼 수 있습니다.