작업 스케줄링 빠른 시작

이 빠른 시작에서는 일정에 따라 실행되는 작업을 만드는 방법을 보여 줍니다. 다음과 같이 작업 스케줄링을 사용해 자동화할 수 있는 게임 작업 루틴이 많이 있습니다:

  • 하루 중 시간에 따라 스토어에서 가격 수정
  • 현재 이벤트의 변경 사항을 반영하기 위한 타이틀 데이터 업데이트
  • 매일 게임 경제에 가상 통화 주입 등

이 빠른 시작에 사용된 예제에서는 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
    });
}

게임 관리자 - CloudScript - 새 수정 배포

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단계를 반복하면 최종 테스트 실행에 성공합니다.

게임 관리자 - 작업 - 최근 작업 실행 - 성공

성공을 확인하는 방법:

  • 왼쪽 메뉴에서 콘텐츠를 선택합니다.
  • 타이틀 데이터 탭으로 이동합니다.
  • 타이틀 데이터 항목이 실제로 설정되었는지 확인합니다.

게임 관리자 - 콘텐츠 - 타이틀 데이터