> ## 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.

# Inicio rápido de tareas programadas

> Cree una tarea programada periódica de PlayFab en Game Manager que invoque CloudScript con una expresión cron para ajustar los datos del título con una cadencia fija.

Este inicio rápido le muestra cómo crear una tarea que se ejecuta según una programación. Hay muchas rutinas de operación del juego que se pueden automatizar mediante una tarea programada, como:

* Modificar los precios de una tienda según la hora del día.
* Actualizar los datos del título para reflejar los cambios de un evento actual.
* Inyectar monedas virtuales en la economía del juego a diario, etc.

En el ejemplo usado en este inicio rápido, le mostraremos cómo modificar una variable del juego llamada **rareDropRate** en los datos del título a las 12:00 UTC, y solo los días de fin de semana.

## Paso 1: preparar el CloudScript

En **Game Manager**:

* Seleccione **Automation** en el menú de la izquierda.
* En la pestaña **CloudScript Revisions**, agregue una nueva función de CloudScript llamada `adjustRareDropRate` con una llamada sencilla a la API `SetTitleData`, como se muestra en el fragmento de código y en la imagen siguientes.

<Note>
  Para los más observadores, no se preocupe: hay un error ahí a propósito. Asegúrese de implementar la nueva revisión para que esté activa en su juego.
</Note>

Puede obtener más información sobre el uso de CloudScript en nuestro [inicio rápido de CloudScript](/services/playfab/live-service-management/service-gateway/automation/cloudscript/quickstart) y en la documentación del método [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 - Implementar nueva revisión" width="1280" height="700" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-cloudscript-deploy-new-revision.png" />

## Paso 2: crear una tarea programada

Ahora seleccione **Servers** en el menú de la izquierda.

* Vaya a la pestaña **Scheduled Tasks**.
* Seleccione **New Scheduled Task** en la esquina superior derecha de la pantalla.
* Esto abrirá la vista **Create Task**.
* En el campo **Type of task**, elija **Run a CloudScript function**.
* Debajo, podrá elegir una función de la revisión de CloudScript implementada actualmente y especificar los argumentos que se pasarán.
* Elija el **controlador adjustRareDropRate** que escribió en el paso anterior.

Para establecer la programación de esta tarea:

* Seleccione **On a schedule (UTC)** bajo el encabezado **SCHEDULE**.
* Un sencillo generador de programaciones le permite elegir cuándo debe ejecutarse la **tarea** (cada hora, día, semana, etc.).
* Para este ejemplo, queremos una programación avanzada, donde podamos especificar qué días de la semana ejecutar la tarea.
* Así que seleccione **CRON EXPRESSION**.

La expresión cron, altamente personalizable, le permite crear una programación muy compleja, aunque es importante tener en cuenta que actualmente *solo* permitimos programaciones cuyas repeticiones se produzcan en marcas de 5 minutos de la hora.

Por ejemplo, puede especificar que una tarea se ejecute en el minuto 5, 10, 25 o 50 de la hora, pero *no* puede especificar que una tarea se ejecute en el minuto 3, 11 o 46 de la hora.

Si quiere obtener más información sobre las expresiones cron, [crontab.guru](https://crontab.guru/) proporciona información detallada y un generador de expresiones interactivo.

En este caso, queremos que la tarea se ejecute a las 12:00 UTC los sábados y domingos, lo que sería **00 12 \* \* 0,6**  (cero minutos después de las doce, cada domingo y sábado).

Por último, asegúrese de guardar la nueva tarea antes de continuar con el paso siguiente.

<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 - Nueva tarea programada" width="1046" height="800" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-new-scheduled-task.png" />

## Paso 3: probar la tarea

En la vista **Tasks** (**Servers** -> **Tasks**), podemos ver que la próxima ejecución de la tarea recién creada es el *sábado* siguiente, como se esperaba.

Por lo tanto, si actualmente es *martes*, la próxima ejecución programada sería *dentro de 4 días*. Para probar la tarea *ahora*, seleccione la tarea **Adjust rare drop rate** y elija **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 - Ejecutar tareas" width="1920" height="600" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-run-tasks.png" />

## Paso 4: comprobar los resultados de la ejecución de prueba

Lamentablemente, la ejecución de la tarea ha fallado. Seleccione la instancia de la tarea para ver qué salió mal.

<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 - Ejecuciones recientes de tareas - Error" width="1870" height="253" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-recent-task-executions-failed.png" />

La vista **Task Instance Details** proporciona información de diagnóstico sobre por qué falló la tarea.

En este caso, indica que la llamada a **serverAPI.SetTitleData** es incorrecta. *Realmente* debería ser **server.SetTitleData** (para obtener una explicación, consulte la sección **Intermediate: Calling the Server APIs** del tutorial [Escritura de CloudScript personalizado](/services/playfab/live-service-management/service-gateway/automation/cloudscript/writing-custom-cloudscript#intermediate-calling-the-server-apis)).

También hay otra información importante en la vista **Task Instance Details**, como las horas de inicio y finalización, la función a la que se llamó, los argumentos pasados, el resultado completo de la ejecución de CloudScript y mucho más.

<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 - Detalles de instancia de tarea" width="1120" height="1869" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-task-instance-details.png" />

## Paso 5: probar de nuevo (correctamente)

Continúe y corrija el error que encontramos en el paso 4. El fragmento de código correcto se muestra a continuación.

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

Y ahora, repitiendo el paso 3, su ejecución de prueba final es correcta.

<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 - Ejecuciones recientes de tareas - Correcta" width="1686" height="446" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-recent-task-executions-successful.png" />

Para confirmar el éxito:

* Seleccione **Content** en el menú de la izquierda.
* Vaya a la pestaña **Title Data**.
* Compruebe que la entrada de **Title Data** se estableció realmente.

<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 - Datos del título" width="1280" height="800" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-content-title-data.png" />


## Related topics

- [Tareas programadas](/es/services/playfab/data-analytics/acting-data/scheduled-tasks/index.md)
- [Documentación de datos y análisis de PlayFab](/es/services/playfab/data-analytics/index.md)
- [Guía de inicio rápido de CloudScript de PlayFab con Azure Functions](/es/services/playfab/live-service-management/service-gateway/automation/cloudscript-af/quickstart.md)
- [Inicio rápido de esquemas](/es/services/playfab/data-analytics/acting-data/schemas-quickstart.md)
- [Inicio rápido de iOS](/es/services/playfab/sdks/c/quickstart-ios.md)
