スケジュール済みタスクのクイックスタート
スケジュールで実行されるタスクの作成方法を説明します。 以下のように、スケジュール済みのタスクを使用して自動化できるゲーム操作のルーチンが数多くあります。
- 1 日の時間に応じてストアの価格を変更する。
- タイトル データ を現在のイベントを反映するように更新する。
- ゲームのエコノミーに毎日仮想通貨を投入する、など。
このクイック スタートで使用される例では、タイトル データで週末のみ UTC 時間 12:00 に rareDropRate と呼ばれるゲーム変数を変更する方法を紹介します。
手順 1 - CloudScript を準備する
[ゲーム マネージャー] で以下を実行します。
- 左側のメニューで、[自動] を選択します。
-
[CloudScript Revisions (CloudScript のリビジョン)] タブで、
adjustRareDropRate
という新しい CloudScript 関数を追加し、SetTitleData
の API を単純に呼び出します。以下にコード スニペットと画像を示します。
注意
バグは意図的なものですので、心配しないでください。 ゲームでライブとなるように、新しいリビジョンを展開してください。
CloudScript の使用について詳しくは、CloudScript クイックスタートと、ExecuteCloudScript メソッドのドキュメントで学習できます。
handlers.adjustRareDropRate = function(args) {
// Tutorial demo CloudScript
serverAPI.SetTitleData({
"Key": "rareDropRate",
"Value": args.dropRate
});
}
手順 2 - スケジュール済みタスクの作成
左側のメニューで [サーバー] を選択します。
- [Scheduled Tasks (スケジュール タスク)] タブに移動します。
- 画面右上の [New Scheduled Task (新しいスケジュール タスク)] を選択します。
- これにより、[Create Task (タスクの作成)] ビューが表示されます。
- [Type of task (タスクのタイプ)] フィールドで、[Run a CloudScript function (CloudScript 機能を実行)] を選択します。
- その下で、現在展開されている CloudScript のリビジョンから関数を選択し、渡す引数を指定できます。
- 前の手順で記述した adjustRareDropRate ハンドラーを選択します。
このタスクのスケジュールを設定するには以下を実行します。
- [スケジュール] ヘッダーの下で [スケジュールに従う (UTC)] を選択します。
- シンプルなスケジュール ビルダーで、タスクをいつ実行するかを線tなくできます (毎時間、毎日、毎週など)。
- この例では、週のどの曜日にタスクを実行するかを指定できる高度なスケジュールを設定します。
- そこで、[CRON EXPRESSION (CRON 式)] を選択します。
高度にカスタマイズ可能な Cron 式によって、非常に複雑なスケジュールを構築できます。ただし、現在では、1 時間の 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] タスクを選択し、[RUN TASKS (タスクの実行)] を選択します。
手順 4 - テスト実行の結果を確認する
残念ながら、タスクの実行に失敗しました。 発生した問題を確認するために、タスクのインスタンスを選択します。
[Task Instance Details (タスク インスタンスの詳細)] ビューには、タスクが失敗した理由の診断情報が表示されます。
今回は、serverAPI.SetTitleData への呼び出しが正しくないことが示されています。 本来は server.SetTitleData とする必要がありました (説明は、カスタム CloudScript の記述チュートリアルの「中級: サーバー API の呼び出し」 を参照してください)。
[Task Instance Details (タスク インスタンスの詳細)] ビューには、開始時間と終了時間、呼び出された関数、渡された引数、完全な CloudScript 実行の結果など、他にも重要な情報があります。
手順 5 - 再テスト (成功)
手順 4 で見つかったエラーを修正してください。 正しいコード スニペットを以下に示します。
handlers.adjustRareDropRate = function(args) {
// Tutorial demo CloudScript
server.SetTitleData({
"Key": "rareDropRate",
"Value": args.dropRate
});
}
次に、手順 3 を繰り返すと、最終的なテスト実行が成功します。
以下を実行して成功を確認します。
- 左側のメニューで、[コンテンツ] を選択します。
- [タイトル データ] タブに移動します。
- [タイトル データ] エントリが実際に設定されていることを確認します。