> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# スケジュール タスクのクイックスタート

> Game Manager で cron 式を使用して CloudScript を呼び出す定期的な PlayFab スケジュール タスクを作成し、一定のペースでタイトル データを調整します。

このクイックスタートでは、スケジュールに従って実行されるタスクを作成する方法を示します。スケジュール タスクを使用して自動化できるゲーム運用ルーチンには次のようなものがあります:

* 時間帯に応じてストアの価格を変更する。
* 現在のイベントの変更を反映するためにタイトル データを更新する。
* 毎日ゲーム経済に仮想通貨を注入する、など。

このクイックスタートで使用する例では、タイトル データの **rareDropRate** というゲーム変数を、週末の日のみ 12:00 UTC に変更する方法を紹介します。

## ステップ 1 - CloudScript を準備する

**Game Manager** で:

* 左のメニューから **Automation** を選択します。
* **CloudScript Revisions** タブで、以下のコード スニペットと画像に示すように、`SetTitleData` API を呼び出す `adjustRareDropRate` という新しい CloudScript 関数を追加します。

<Note>
  目ざとい方はご心配なく - わざとバグが含まれています。新しいリビジョンをデプロイして、ゲームでライブになるようにしてください。
</Note>

CloudScript の使用に関する詳細については、[CloudScript クイックスタート](/services/playfab/live-service-management/service-gateway/automation/cloudscript/quickstart) と、[ExecuteCloudScript](xref:titleid.playfabapi.com.client.server-sidecloudscript.executecloudscript) メソッドのドキュメントで学習できます。

```javascript theme={null}
handlers.adjustRareDropRate = function(args) {
    // Tutorial demo CloudScript
    serverAPI.SetTitleData({
        "Key": "rareDropRate",
        "Value": args.dropRate
    });
}
```

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-cloudscript-deploy-new-revision.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=db6bc4f364ba1f9b4f28094921c2383c" alt="Game Manager - CloudScript - Deploy new revision" width="1280" height="700" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-cloudscript-deploy-new-revision.png" />

## ステップ 2 - スケジュール タスクを作成する

次に、左のメニューから **Servers** を選択します。

* **Scheduled Tasks** タブに移動します。
* 画面の右上隅の **New Scheduled Task** を選択します。
* これにより **Create Task** ビューが表示されます。
* **Type of task** フィールドで、**Run a CloudScript function** を選択します。
* その下で、現在デプロイされている CloudScript のリビジョンから関数を選択し、渡す引数を指定できます。
* 前のステップで作成した **adjustRareDropRate Handler** を選択します。

このタスクのスケジュールを設定するには:

* **SCHEDULE** ヘッダーの下で **On a schedule (UTC)** を選択します。
* シンプルなスケジュール ビルダーで、**タスク** を実行するタイミング (1 時間ごと、1 日ごと、1 週間ごとなど) を選択できます。
* この例では、タスクを実行する曜日を指定できる高度なスケジュールが必要です。
* **CRON EXPRESSION** を選択します。

高度にカスタマイズ可能な Cron Expression を使用すると、非常に複雑なスケジュールを構築できます。ただし、現在は 5 分刻みのタイミングでのみスケジュールが可能なことに注意してください。

たとえば、1 時間の 5 分、10 分、25 分、または 50 分にタスクを実行するように指定できますが、3 分、11 分、または 46 分にタスクを実行するように指定することは *できません*。

Cron Expression の詳細を知りたい場合、[crontab.guru](https://crontab.guru/) に豊富な情報とインタラクティブな式ビルダーが用意されています。

この場合、土曜日と日曜日の 12:00 UTC にタスクを実行したいので、**00 12 \* \* 0,6** となります (12 時から 0 分経過、毎週日曜日と土曜日)。

最後に、次のステップに進む前に、新しいタスクを保存することを確認します。

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-new-scheduled-task.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=e8ee3518088be1728ac184868d985b53" alt="Game Manager - Tasks - New Scheduled Task" width="1046" height="800" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-new-scheduled-task.png" />

## ステップ 3 - タスクをテストする

**Tasks** ビュー (**Servers** -> **Tasks**) で、新しく作成されたタスクの次回実行日が予想通り次の *土曜日* であることが確認できます。

したがって、現在 *火曜日* の場合、次のスケジュール実行時間は *4 日後* になります。*今すぐ* タスクをテストするには、**Adjust rare drop rate** タスクを選択して **RUN TASKS** を選択します。

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-run-tasks.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=ca99c453fb27cae7ee06c514a64bac32" alt="Game Manager - Tasks - Run Tasks" width="1920" height="600" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-run-tasks.png" />

## ステップ 4 - テスト実行の結果を確認する

残念ながら、タスクの実行は失敗しました。タスク インスタンスを選択して何が問題だったかを確認します。

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-recent-task-executions-failed.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=140bddb5715b4815d89ad9f26bcbaa75" alt="Game Manager - Tasks - Recent Task executions - Fail" width="1870" height="253" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-recent-task-executions-failed.png" />

**Task Instance Details** ビューには、タスクが失敗した理由に関する診断情報が表示されます。

この場合、**serverAPI.SetTitleData** の呼び出しが正しくないことが示されています。*本当は* **server.SetTitleData** であるべきです (詳細な説明については、[Writing Custom CloudScript](/services/playfab/live-service-management/service-gateway/automation/cloudscript/writing-custom-cloudscript#intermediate-calling-the-server-apis) チュートリアルの **中級: サーバー API の呼び出し** セクションを参照してください)。

**Task Instance Details** ビューには、開始時刻と終了時刻、呼び出された関数、渡された引数、完全な CloudScript の実行結果など、その他の重要な情報も表示されます。

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-task-instance-details.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=86e963959cb4c8aed29d5523031d0346" alt="Game Manager - Tasks - Tas Instance Details" width="1120" height="1869" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-task-instance-details.png" />

## ステップ 5 - 再度テストする (成功)

ステップ 4 で見つかったエラーを修正しましょう。正しいコード スニペットを以下に示します。

```javascript theme={null}
handlers.adjustRareDropRate = function(args) {
    // Tutorial demo CloudScript
    server.SetTitleData({
        "Key": "rareDropRate",
        "Value": args.dropRate
    });
}
```

そして、ステップ 3 を繰り返すと、最終的なテスト実行は成功します。

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-recent-task-executions-successful.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=e67ce866e0b36227b39e3c829eea5000" alt="Game Manager - Tasks - Recent Task executions - Successful" width="1686" height="446" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-recent-task-executions-successful.png" />

成功を確認するには:

* 左のメニューから **Content** を選択します。
* **Title Data** タブに移動します。
* **Title Data** エントリが実際に設定されたことを確認します。

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-content-title-data.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=229b4658045991da01edcad22c512fef" alt="Game Manager - Content - Title Data" width="1280" height="800" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-content-title-data.png" />


## Related topics

- [アクションとルールのクイックスタート](/ja-jp/services/playfab/data-analytics/acting-data/action-rules-quickstart.md)
- [メール メッセージングのクイックスタート](/ja-jp/services/playfab/live-service-management/game-configuration/title-communications/emails/quickstart.md)
- [スケジュールされたタスク](/ja-jp/services/playfab/data-analytics/acting-data/scheduled-tasks/index.md)
- [Azure Functions を利用した PlayFab CloudScript のクイックスタート ガイド](/ja-jp/services/playfab/live-service-management/service-gateway/automation/cloudscript-af/quickstart.md)
- [PlayFab データと分析のドキュメント](/ja-jp/services/playfab/data-analytics/index.md)
