이 빠른 시작에서는 일정에 따라 실행되는 작업을 만드는 방법을 보여 줍니다. 다음과 같이 작업 스케줄링을 사용해 자동화할 수 있는 게임 작업 루틴이 많이 있습니다:
- 하루 중 시간에 따라 스토어에서 가격 수정
- 현재 이벤트의 변경 사항을 반영하기 위한 타이틀 데이터 업데이트
- 매일 게임 경제에 가상 통화 주입 등
이 빠른 시작에 사용된 예제에서는 12:00 UTC에, 그리고 주말에만 타이틀 데이터에서 rareDropRate라는 게임 변수를 수정하는 방법을 보여 줍니다.
단계 1 - CloudScript 준비
게임 관리자에서:
- 왼쪽 메뉴에서 자동화를 선택합니다.
-
CloudScript Revisions(CloudScript 수정) 탭에서 아래의 코드 조각과 이미지에 나온 대로
SetTitleDataAPI를 간단히 호출하여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 Expression을 사용하면 매우 복잡한 일정을 작성할 수 있지만, 현재는 시간의 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단계를 반복하면 최종 테스트 실행에 성공합니다.
성공을 확인하는 방법:
- 왼쪽 메뉴에서 콘텐츠를 선택합니다.
- 타이틀 데이터 탭으로 이동합니다.
- 타이틀 데이터 항목이 실제로 설정되었는지 확인합니다.