작업 스케줄링 빠른 시작
이 빠른 시작에서는 일정에 따라 실행되는 작업을 만드는 방법을 보여 줍니다. 다음과 같이 작업 스케줄링을 사용해 자동화할 수 있는 게임 작업 루틴이 많이 있습니다:
- 하루 중 시간에 따라 스토어에서 가격 수정
- 현재 이벤트의 변경 사항을 반영하기 위한 타이틀 데이터 업데이트
- 매일 게임 경제에 가상 통화 주입 등
이 빠른 시작에 사용된 예제에서는 12:00 UTC에, 그리고 주말에만 타이틀 데이터에서 rareDropRate라는 게임 변수를 수정하는 방법을 보여 줍니다.
단계 1 - CloudScript 준비
게임 관리자에서:
- 왼쪽 메뉴에서 자동화를 선택합니다.
-
CloudScript Revisions(CloudScript 수정) 탭에서 아래의 코드 조각과 이미지에 나온 대로
SetTitleData
API를 간단히 호출하여adjustRareDropRate
라는 새 CloudScript 함수를 추가합니다.
참고 항목
예리한 분은 이미 발견하셨겠지만, 여기 있는 버그는 일부러 포함한 것입니다. 게임에서 가동되도록 새 수정을 배포하세요.
CloudScript 빠른 시작과 ExecuteCloudScript 메서드 설명서에서 CloudScript 사용에 대해 자세히 알아볼 수 있습니다.
handlers.adjustRareDropRate = function(args) {
// Tutorial demo CloudScript
serverAPI.SetTitleData({
"Key": "rareDropRate",
"Value": args.dropRate
});
}
2단계 - 예약형 작업 만들기
이제 왼쪽 메뉴에서 서버를 선택합니다.
- Scheduled Tasks(예약형 작업) 탭으로 이동합니다.
- 화면 오른쪽 위 모서리에서 New Scheduled Task(새 예약형 작업)를 선택합니다.
- 그러면 작업 만들기 보기가 나타납니다.
- Type of task(작업 유형) 필드에서 Run a CloudScript function(CloudScript 함수 실행)을 선택합니다.
- 그 아래에서 현재 배포된 CloudScript 수정에서 함수를 선택하고 전달할 인수를 지정할 수 있습니다.
- 이전 단계에서 작성한 adjustRareDropRate 처리기를 선택합니다.
이 작업을 위한 스케줄을 설정하는 방법:
- 스케줄 헤더 아래에서 On a schedule (UTC)(일정(UTC)에 따라)를 선택합니다.
- 간단한 스케줄 빌더를 통해 작업이 실행되어야 하는 때를 선택할 수 있습니다(매 시간, 요일, 주 등).
- 이 예에서는 작업을 실행할 요일을 지정할 수 있는 고급 스케줄을 원합니다.
- 따라서 CRON 식을 선택합니다.
고도의 맞춤화가 가능한 Cron 식을 사용해 매우 복잡한 스케줄을 구축할 수 있지만 현재 5분 눈금 시간에서 항목이 발생하는 스케줄‘만’ 허용함을 기억하는 것이 중요합니다.
예컨대, 시간의 5분, 10분, 25분, 또는 50분에 실행되도록 작업을 지정할 수 있지만 시간의 3분, 11분 또는 46분에 실행되도록 작업을 지정할 수는 ‘없습니다’.
Cron 식에 대해 더 많이 배우기 원하는 경우, crontab.guru가 풍부한 정보와 대화형 식 빌더를 제공합니다.
이 사례에서 우리는 작업이 토요일과 일요일의 12:00 UTC에 실행되도록 할 것인 데, 그것은 00 12 * * 0,6(매주 토요일과 일요일의 12시 0분)이 될 것입니다.
마지막으로, 다음 단계로 이동하기 전에 새 작업을 저장하는 것도 잊지 마세요.
3단계 - 작업 테스트
작업 보기(서버 - >작업)에서 새로 생성된 작업의 그 다음 실행이 예상대로 다음 토요일에 있음을 볼 수 있습니다.
그러므로 현재 ‘화요일’인 경우, 그 다음 예정된 실행 시간은 ‘4일 후’입니다. 작업을 ‘지금’ 테스트하려면 Adjust rare drop rate(드문 Drop Rate 조정) 작업을 선택하고 작업 실행을 선택합니다.
4단계 - 실행 테스트의 결과 확인
안타깝게도 실행 테스트에 실패했습니다. 잘못된 부분을 확인하려면 작업 인스턴스를 선택하세요.
Task Instance Details(작업 인스턴스 세부 정보) 보기는 작업이 실패한 이유에 대한 진단 정보를 제공합니다.
여기서는 serverAPI.SetTitleData 호출이 잘못되었음을 가리킵니다. 그것은 ‘사실’ server.SetTitleData이어야 합니다(설명은 사용자 지정 CloudScript 작성 자습서의 중급: 서버 API 호출 섹션을 참조).
보기에도 시작 및 종료 시간, 호출된 기능, 전달된 인수, 전체 CloudScript 실행 결과 등 기타 중요 정보들이 있습니다.
단계 5 - 다시 테스트(성공)
계속해서 4단계에서 발견된 오류를 수정합니다. 올바른 코드 조각은 아래와 같습니다.
handlers.adjustRareDropRate = function(args) {
// Tutorial demo CloudScript
server.SetTitleData({
"Key": "rareDropRate",
"Value": args.dropRate
});
}
이제 3단계를 반복하면 최종 테스트 실행에 성공합니다.
성공을 확인하는 방법:
- 왼쪽 메뉴에서 콘텐츠를 선택합니다.
- 타이틀 데이터 탭으로 이동합니다.
- 타이틀 데이터 항목이 실제로 설정되었는지 확인합니다.