Ejecución de tareas en segundo plano con WebJobs en Azure App ServiceRun Background tasks with WebJobs in Azure App Service

Información generalOverview

WebJobs es una característica de Azure App Service que le permite ejecutar un programa o script en el mismo contexto que una aplicación web, una aplicación de API o una aplicación móvil.WebJobs is a feature of Azure App Service that enables you to run a program or script in the same context as a web app, API app, or mobile app. No hay ningún coste adicional en el uso de trabajos web.There is no additional cost to use WebJobs.

En este artículo se muestra cómo implementar WebJobs con Azure Portal para cargar un ejecutable o un script.This article shows how to deploy WebJobs by using the Azure portal to upload an executable or script. Para información sobre cómo desarrollar e implementar WebJobs mediante Visual Studio, consulte Implementación de WebJobs con Visual Studio.For information about how to develop and deploy WebJobs by using Visual Studio, see Deploy WebJobs using Visual Studio.

El SDK de Azure WebJobs se puede usar con WebJobs para simplificar muchas tareas de programación.The Azure WebJobs SDK can be used with WebJobs to simplify many programming tasks. Para obtener más información, consulte ¿Qué es el SDK de Webjobs?For more information, see What is the WebJobs SDK.

Azure Functions proporciona otra manera de ejecutar programas y scripts.Azure Functions provides another way to run programs and scripts. Para una comparación entre WebJobs y Functions, consulte Elección entre Flow, Logic Apps, Functions y WebJobs.For a comparison between WebJobs and Functions, see Choose between Flow, Logic Apps, Functions, and WebJobs.

Tipos de WebJobWebJob types

En la tabla siguiente se describen las diferencias entre los WebJobs continuo y desencadenado.The following table describes the differences between continuous and triggered WebJobs.

ContinuoContinuous DesencadenadoTriggered
Se inicia inmediatamente cuando se crea el WebJob.Starts immediately when the WebJob is created. Para evitar que el trabajo finalice, el programa o script habitualmente funciona dentro de un bucle sin fin.To keep the job from ending, the program or script typically does its work inside an endless loop. Si el trabajo finaliza, es posible reiniciarlo.If the job does end, you can restart it. Se inicia solo cuando se desencadena manualmente o de acuerdo con una programación.Starts only when triggered manually or on a schedule.
Se ejecuta en todas las instancias en que se ejecuta la aplicación web.Runs on all instances that the web app runs on. También puede restringir el WebJob a una sola instancia.You can optionally restrict the WebJob to a single instance. Se ejecuta en una sola instancia que Azure selecciona para el equilibrio de carga.Runs on a single instance that Azure selects for load balancing.
Admite la depuración remota.Supports remote debugging. No admite la depuración remota.Doesn't support remote debugging.

Nota

Una aplicación web puede agotar el tiempo de espera después de 20 minutos de inactividad.A web app can time out after 20 minutes of inactivity. Solo las solicitudes al sitio de scm (implementación) o a las páginas de la aplicación web en el portal restablecen el temporizador.Only requests to the scm (deployment) site or to the web app's pages in the portal reset the timer. Las solicitudes al sitio real no restablecen el temporizador.Requests to the actual site don't reset the timer. Si la aplicación ejecuta WebJobs continuos o programados, habilite AlwaysOn para asegurarse de que los WebJobs se ejecuten de manera confiable.If your app runs continuous or scheduled WebJobs, enable Always On to ensure that the WebJobs run reliably. Esta característica solo está disponible en los planes de tarifa Básico, Estándar y Premium.This feature is available only in the Basic, Standard, and Premium pricing tiers.

Tipos de archivo admitidos para scripts o programasSupported file types for scripts or programs

Se admiten los tipos de archivo siguientes:The following file types are supported:

  • .cmd, .bat, .exe (con cmd de Windows).cmd, .bat, .exe (using Windows cmd)
  • .ps1 (con PowerShell).ps1 (using PowerShell)
  • .sh (con Bash).sh (using Bash)
  • .php (con PHP).php (using PHP)
  • .py (con Python).py (using Python)
  • .js (con Node.js).js (using Node.js)
  • .jar (con Java).jar (using Java)

Creación de un WebJob continuoCreate a continuous WebJob

  1. En Azure Portal, vaya a la página App Service de la aplicación web, la aplicación de API o la aplicación móvil de App Service.In the Azure portal, go to the App Service page of your App Service web app, API app, or mobile app.

  2. Seleccione WebJobs.Select WebJobs.

    Selección de WebJobs

  3. En la página WebJobs, seleccione Agregar.In the WebJobs page, select Add.

    Página WebJob

  4. Use la configuración Agregar WebJob que se especifica en la tabla.Use the Add WebJob settings as specified in the table.

    Página Agregar WebJob

    ConfiguraciónSetting Valor de ejemploSample value DESCRIPCIÓNDescription
    NameName myContinuousWebJobmyContinuousWebJob Nombre único dentro de una aplicación de App Service.A name that is unique within an App Service app. Debe comenzar con una letra o un número y no puede contener caracteres especiales salvo "-" y "".Must start with a letter or a number and cannot contain special characters other than "-" and "".
    Carga de archivosFile Upload ConsoleApp.zipConsoleApp.zip Archivo ZIP que contiene el archivo de script o el archivo ejecutable así como cualquier archivo complementario necesario para ejecutar el programa o script.A .zip file that contains your executable or script file as well as any supporting files needed to run the program or script. Los tipos de archivo de script o de archivo ejecutable compatibles aparecen en la sección Tipos de archivo admitidos.The supported executable or script file types are listed in the Supported file types section.
    TipoType ContinuoContinuous Los tipos de WebJob aparecen descritos anteriormente en este artículo.The WebJob types are described earlier in this article.
    EscalaScale Instancias múltiplesMulti instance Solo disponible para WebJobs continuos.Available only for Continuous WebJobs. Determina si el programa o el script se ejecuta en todas las instancias o solo en una.Determines whether the program or script runs on all instances or just one instance. La opción para que se ejecute en varias instancias no se aplica a los planes de tarifa Gratis o Compartido.The option to run on multiple instances doesn't apply to the Free or Shared pricing tiers.
  5. Haga clic en OK.Click OK.

    El WebJob nuevo aparece en la página WebJobs.The new WebJob appears on the WebJobs page.

    Lista de WebJobs

  6. Para detener o reiniciar un WebJob continuo, haga clic con el botón derecho en el WebJob en la lista y haga clic en Detener o Iniciar.To stop or restart a continuous WebJob, right-click the WebJob in the list and click Stop or Start.

    Detención de un WebJob continuo

Creación de un WebJob desencadenado de manera manualCreate a manually triggered WebJob

  1. En Azure Portal, vaya a la página App Service de la aplicación web, la aplicación de API o la aplicación móvil de App Service.In the Azure portal, go to the App Service page of your App Service web app, API app, or mobile app.

  2. Seleccione WebJobs.Select WebJobs.

    Selección de WebJobs

  3. En la página WebJobs, seleccione Agregar.In the WebJobs page, select Add.

    Página WebJob

  4. Use la configuración Agregar WebJob que se especifica en la tabla.Use the Add WebJob settings as specified in the table.

    Página Agregar WebJob

    ConfiguraciónSetting Valor de ejemploSample value DESCRIPCIÓNDescription
    NameName myTriggeredWebJobmyTriggeredWebJob Nombre único dentro de una aplicación de App Service.A name that is unique within an App Service app. Debe comenzar con una letra o un número y no puede contener caracteres especiales salvo "-" y "".Must start with a letter or a number and cannot contain special characters other than "-" and "".
    Carga de archivosFile Upload ConsoleApp.zipConsoleApp.zip Archivo ZIP que contiene el archivo de script o el archivo ejecutable así como cualquier archivo complementario necesario para ejecutar el programa o script.A .zip file that contains your executable or script file as well as any supporting files needed to run the program or script. Los tipos de archivo de script o de archivo ejecutable compatibles aparecen en la sección Tipos de archivo admitidos.The supported executable or script file types are listed in the Supported file types section.
    TipoType DesencadenadoTriggered Los tipos de WebJob aparecen descritos anteriormente en este artículo.The WebJob types are described earlier in this article.
    DesencadenadoresTriggers ManualManual
  5. Haga clic en OK.Click OK.

    El WebJob nuevo aparece en la página WebJobs.The new WebJob appears on the WebJobs page.

    Lista de WebJobs

  6. Para ejecutar el trabajo web, haga clic en su nombre en la lista y haga clic en Ejecutar.To run the WebJob, right-click its name in the list and click Run.

    Ejecución de WebJobs

Creación de un WebJob programadoCreate a scheduled WebJob

  1. En Azure Portal, vaya a la página App Service de la aplicación web, la aplicación de API o la aplicación móvil de App Service.In the Azure portal, go to the App Service page of your App Service web app, API app, or mobile app.

  2. Seleccione WebJobs.Select WebJobs.

    Selección de WebJobs

  3. En la página WebJobs, seleccione Agregar.In the WebJobs page, select Add.

    Página WebJob

  4. Use la configuración Agregar WebJob que se especifica en la tabla.Use the Add WebJob settings as specified in the table.

    Página Agregar WebJob

    ConfiguraciónSetting Valor de ejemploSample value DESCRIPCIÓNDescription
    NameName myScheduledWebJobmyScheduledWebJob Nombre único dentro de una aplicación de App Service.A name that is unique within an App Service app. Debe comenzar con una letra o un número y no puede contener caracteres especiales salvo "-" y "".Must start with a letter or a number and cannot contain special characters other than "-" and "".
    Carga de archivosFile Upload ConsoleApp.zipConsoleApp.zip Archivo ZIP que contiene el archivo de script o el archivo ejecutable así como cualquier archivo complementario necesario para ejecutar el programa o script.A .zip file that contains your executable or script file as well as any supporting files needed to run the program or script. Los tipos de archivo de script o de archivo ejecutable compatibles aparecen en la sección Tipos de archivo admitidos.The supported executable or script file types are listed in the Supported file types section.
    TipoType DesencadenadoTriggered Los tipos de WebJob aparecen descritos anteriormente en este artículo.The WebJob types are described earlier in this article.
    DesencadenadoresTriggers ProgramadoScheduled Para que la programación funcione de manera confiable, habilite la característica AlwaysOn.For the scheduling to work reliably, enable the Always On feature. AlwaysOn solo está disponible en los planes de tarifa Básico, Estándar y Premium.Always On is available only in the Basic, Standard, and Premium pricing tiers.
    Expresión CRONCRON Expression 0 0/20 * * * *0 0/20 * * * * Las expresiones CRON se describen en la sección siguiente.CRON expressions are described in the following section.
  5. Haga clic en OK.Click OK.

    El WebJob nuevo aparece en la página WebJobs.The new WebJob appears on the WebJobs page.

    Lista de WebJobs

Expresiones CRONCRON expressions

Puede especificar una expresión CRON en el portal o incluir un archivo settings.job en la raíz del archivo .zip de WebJob, como en el ejemplo siguiente:You can enter a CRON expression in the portal or include a settings.job file at the root of your WebJob .zip file, as in the following example:

{
    "schedule": "0 */15 * * * *"
}

Nota

Cuando implemente un WebJob desde Visual Studio, marque las propiedades del archivo settings.job como Copiar si es posterior.When you deploy a WebJob from Visual Studio, mark your settings.job file properties as Copy if newer.

Visualización del historial de trabajosView the job history

  1. Seleccione el WebJob cuyo historial desea ver y, luego, seleccione el botón Registros.Select the WebJob you want to see history for, and then select the Logs button.

    Botón Registros

  2. En la página Detalles del WebJob, seleccione una hora para ver los detalles de una ejecución.In the WebJob Details page, select a time to see details for one run.

    Detalles del WebJob

  3. En la página Detalles de ejecución del WebJob, seleccione Alternar salida para ver el texto del contenido del registro.In the WebJob Run Details page, select Toggle Output to see the text of the log contents.

    Detalles de ejecución del trabajo web

    Para ver el texto de salida en otra ventana del explorador, seleccione Descargar.To see the output text in a separate browser window, select download. Para descargar el texto propiamente tal, haga clic con el botón derecho en Descargar y use las opciones del explorador para guardar el contenido del archivo.To download the text itself, right-click download and use your browser options to save the file contents.

  4. Seleccione el vínculo de la ruta de navegación de los WebJobs que se encuentra en la parte superior de la página para ir a una lista de los WebJobs.Select the WebJobs breadcrumb link at the top of the page to go to a list of WebJobs.

    Ruta de navegación de WebJob

    Lista de WebJobs el panel del historial

Pasos siguientesNext steps

El SDK de Azure WebJobs se puede usar con WebJobs para simplificar muchas tareas de programación.The Azure WebJobs SDK can be used with WebJobs to simplify many programming tasks. Para obtener más información, consulte ¿Qué es el SDK de Webjobs?For more information, see What is the WebJobs SDK.