Executar tarefas em segundo plano com o WebJobs no Serviço de Aplicativo do AzureRun Background tasks with WebJobs in Azure App Service

Visão geralOverview

WebJobs é um recurso do Serviço de Aplicativo do Azure que permite executar um programa ou script no mesmo contexto de um aplicativo Web, aplicativo de API ou aplicativo móvel.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. Não há nenhum custo adicional para usar Trabalhos Web.There is no additional cost to use WebJobs.

Importante

O WebJobs ainda não é suportado para o Serviço de Aplicativo no Linux.WebJobs is not yet supported for App Service on Linux.

Este artigo mostra como implantar o WebJobs usando o portal do Azure para carregar um executável ou um script.This article shows how to deploy WebJobs by using the Azure portal to upload an executable or script. Para obter informações sobre como desenvolver e implantar o WebJobs usando o Visual Studio, consulte Implantar o WebJobs usando o Visual Studio.For information about how to develop and deploy WebJobs by using Visual Studio, see Deploy WebJobs using Visual Studio.

O SDK do WebJobs do Azure pode ser usado com o WebJobs para simplificar muitas tarefas de programação.The Azure WebJobs SDK can be used with WebJobs to simplify many programming tasks. Para obter mais informações, consulte O que é o SDK de Trabalhos Web.For more information, see What is the WebJobs SDK.

O Azure Functions oferece outra maneira de executar programas e scripts.Azure Functions provides another way to run programs and scripts. Para obter uma comparação entre o WebJobs e o Functions, consulte Escolher entre o Flow, Aplicativos Lógicos, Functions e WebJobs.For a comparison between WebJobs and Functions, see Choose between Flow, Logic Apps, Functions, and WebJobs.

Tipos de WebJobWebJob types

A tabela a seguir descreve as diferenças entre WebJobs contínuos e disparados.The following table describes the differences between continuous and triggered WebJobs.

ContínuoContinuous DisparadoTriggered
É iniciado imediatamente quando o WebJob é criado.Starts immediately when the WebJob is created. Para impedir o encerramento do trabalho, o programa ou o script normalmente faz seu trabalho dentro de um loop infinito.To keep the job from ending, the program or script typically does its work inside an endless loop. Se o trabalho for encerrado, você poderá reiniciá-lo.If the job does end, you can restart it. É iniciado apenas quando disparado manualmente ou de acordo com um agendamento.Starts only when triggered manually or on a schedule.
É executado em todas as instâncias nas quais o aplicativo Web é executado.Runs on all instances that the web app runs on. Opcionalmente, você pode restringir o WebJob a uma única instância.You can optionally restrict the WebJob to a single instance. É executado em uma única instância selecionada pelo Azure para balanceamento de carga.Runs on a single instance that Azure selects for load balancing.
Dá suporte à depuração remota.Supports remote debugging. Não dá suporte à depuração remota.Doesn't support remote debugging.

Observação

Um aplicativo Web pode atingir o tempo limite após 20 minutos de inatividade.A web app can time out after 20 minutes of inactivity. Somente as solicitações para o aplicativo web real reiniciam o temporizador.Only requests to the actual web app reset the timer. Exibir a configuração do aplicativo no portal do Azure ou fazer solicitações para o site de ferramentas avançadas (https://<app_name>.scm.azurewebsites.net) não redefine o timer.Viewing the app's configuration in the Azure portal or making requests to the advanced tools site (https://<app_name>.scm.azurewebsites.net) don't reset the timer. Se seu aplicativo executar trabalhos Web contínuos ou agendados (gatilho de temporizador), habilite Always on para garantir que os trabalhos Web sejam executados de forma confiável.If your app runs continuous or scheduled (Timer trigger) WebJobs, enable Always On to ensure that the WebJobs run reliably. Este recurso está disponível apenas nos tipos de preço Básico, Standard e Premium.This feature is available only in the Basic, Standard, and Premium pricing tiers.

Tipos de arquivo com suporte para scripts ou programasSupported file types for scripts or programs

Há suporte para os seguintes tipos de arquivo:The following file types are supported:

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

Criar um WebJob contínuoCreate a continuous WebJob

  1. No portal do Azure, acesse a página Serviço de Aplicativo do aplicativo Web, aplicativo de API ou aplicativo móvel do Serviço de Aplicativo.In the Azure portal, go to the App Service page of your App Service web app, API app, or mobile app.

  2. Selecione WebJobs.Select WebJobs.

    Selecionar o WebJobs

  3. Na página WebJobs, selecione Adicionar.In the WebJobs page, select Add.

    Página do WebJob

  4. Use as configurações Adicionar WebJob conforme especificado na tabela.Use the Add WebJob settings as specified in the table.

    Página Adicionar WebJob

    ConfiguraçãoSetting Valor de exemploSample value DescriçãoDescription  
    Nome Name  myContinuousWebJobmyContinuousWebJob Um nome que seja exclusivo em um aplicativo do Serviço de Aplicativo.A name that is unique within an App Service app. Deve começar com uma letra ou um número e não pode conter caracteres especiais além de “-” e “”.Must start with a letter or a number and cannot contain special characters other than "-" and "".
    Upload de Arquivo File Upload  ConsoleApp.zipConsoleApp.zip Um arquivo .zip que contém o executável ou o arquivo de script, bem como os arquivos de suporte necessários para executar o programa ou 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. Os tipos de executável ou arquivo de script com suporte são listados na seção Tipos de arquivo com suporte.The supported executable or script file types are listed in the Supported file types section.
    Tipo Type  ContínuoContinuous Os tipos do WebJob foram descritos anteriormente neste artigo.The WebJob types are described earlier in this article.
    EscalaScale Várias instânciasMulti instance Disponível somente para WebJobs Contínuos.Available only for Continuous WebJobs. Determina se o programa ou o script é executado em todas as instâncias ou apenas em uma única instância.Determines whether the program or script runs on all instances or just one instance. A opção de execução em várias instâncias não se aplica aos tipos de preço Gratuito ou Compartilhado.The option to run on multiple instances doesn't apply to the Free or Shared pricing tiers.
  5. Clique em OK.Click OK.

    O novo WebJob é exibido na página WebJobs.The new WebJob appears on the WebJobs page.

    Lista de WebJobs

  6. Para parar ou reiniciar um WebJob contínuo, clique com o botão direito do mouse no WebJob na lista e clique em Parar ou Iniciar.To stop or restart a continuous WebJob, right-click the WebJob in the list and click Stop or Start.

    Interromper um WebJob contínuo

Criar um WebJob disparado manualmenteCreate a manually triggered WebJob

  1. No portal do Azure, acesse a página Serviço de Aplicativo do aplicativo Web, aplicativo de API ou aplicativo móvel do Serviço de Aplicativo.In the Azure portal, go to the App Service page of your App Service web app, API app, or mobile app.

  2. Selecione WebJobs.Select WebJobs.

    Selecionar o WebJobs

  3. Na página WebJobs, selecione Adicionar.In the WebJobs page, select Add.

    Página do WebJob

  4. Use as configurações Adicionar WebJob conforme especificado na tabela.Use the Add WebJob settings as specified in the table.

    Página Adicionar WebJob

    ConfiguraçãoSetting Valor de exemploSample value DescriçãoDescription  
    Nome Name  myTriggeredWebJobmyTriggeredWebJob Um nome que seja exclusivo em um aplicativo do Serviço de Aplicativo.A name that is unique within an App Service app. Deve começar com uma letra ou um número e não pode conter caracteres especiais além de “-” e “”.Must start with a letter or a number and cannot contain special characters other than "-" and "".
    Upload de Arquivo File Upload  ConsoleApp.zipConsoleApp.zip Um arquivo .zip que contém o executável ou o arquivo de script, bem como os arquivos de suporte necessários para executar o programa ou 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. Os tipos de executável ou arquivo de script com suporte são listados na seção Tipos de arquivo com suporte.The supported executable or script file types are listed in the Supported file types section.
    Tipo Type  DisparadoTriggered Os tipos do WebJob foram descritos anteriormente neste artigo.The WebJob types are described earlier in this article.
    Gatilhos Triggers  ManualManual
  5. Clique em OK.Click OK.

    O novo WebJob é exibido na página WebJobs.The new WebJob appears on the WebJobs page.

    Lista de WebJobs

  6. Para executar o Trabalho Web, clique com o botão direito do mouse em seu nome na lista e clique em Executar.To run the WebJob, right-click its name in the list and click Run.

    Executar WebJob

Criar um WebJob agendadoCreate a scheduled WebJob

  1. No portal do Azure, acesse a página Serviço de Aplicativo do aplicativo Web, aplicativo de API ou aplicativo móvel do Serviço de Aplicativo.In the Azure portal, go to the App Service page of your App Service web app, API app, or mobile app.

  2. Selecione WebJobs.Select WebJobs.

    Selecionar o WebJobs

  3. Na página WebJobs, selecione Adicionar.In the WebJobs page, select Add.

    Página do WebJob

  4. Use as configurações Adicionar WebJob conforme especificado na tabela.Use the Add WebJob settings as specified in the table.

    Página Adicionar WebJob

    ConfiguraçãoSetting Valor de exemploSample value DescriçãoDescription  
    Nome Name  myScheduledWebJobmyScheduledWebJob Um nome que seja exclusivo em um aplicativo do Serviço de Aplicativo.A name that is unique within an App Service app. Deve começar com uma letra ou um número e não pode conter caracteres especiais além de “-” e “”.Must start with a letter or a number and cannot contain special characters other than "-" and "".
    Upload de Arquivo File Upload  ConsoleApp.zipConsoleApp.zip Um arquivo .zip que contém o executável ou o arquivo de script, bem como os arquivos de suporte necessários para executar o programa ou 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. Os tipos de executável ou arquivo de script com suporte são listados na seção Tipos de arquivo com suporte.The supported executable or script file types are listed in the Supported file types section.
    Tipo Type  DisparadoTriggered Os tipos do WebJob foram descritos anteriormente neste artigo.The WebJob types are described earlier in this article.
    Gatilhos Triggers  AgendadoScheduled Para que o agendamento funcione de modo confiável, habilite o recurso AlwaysOn.For the scheduling to work reliably, enable the Always On feature. O AlwaysOn está disponível apenas nos tipos de preço Básico, Standard e Premium.Always On is available only in the Basic, Standard, and Premium pricing tiers.
    Expressão CRON CRON Expression  0 0/20 * * * *0 0/20 * * * * As expressões CRON são descritas na seção a seguir.CRON expressions are described in the following section.
  5. Clique em OK.Click OK.

    O novo WebJob é exibido na página WebJobs.The new WebJob appears on the WebJobs page.

    Lista de WebJobs

Expressões NCRONTABNCRONTAB expressions

Você pode inserir uma expressão NCRONRAB no portal ou incluir um settings.job arquivo na raiz do seu arquivo WebJob . zip , como no exemplo a seguir:You can enter a NCRONRAB 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 * * * *"
}

Para saber mais, consulte agendando um WebJobdisparado.To learn more, see Scheduling a triggered WebJob.

Exibir o histórico de trabalhosView the job history

  1. Selecione o WebJob do qual você deseja ver o histórico e, em seguida, selecione o botão Logs.Select the WebJob you want to see history for, and then select the Logs button.

    Botão Logs

  2. Na página Detalhes do WebJob, selecione uma hora para ver os detalhes de uma execução.In the WebJob Details page, select a time to see details for one run.

    Detalhes do WebJob

  3. Na página Detalhes da Execução do WebJob, selecione Alternar Saída para ver o texto do conteúdo do log.In the WebJob Run Details page, select Toggle Output to see the text of the log contents.

    Detalhes da execução do trabalho Web

    Para ver o texto de saída em uma janela separada do navegador, selecione Baixar.To see the output text in a separate browser window, select download. Para baixar o texto propriamente dito, clique com o botão direito do mouse em Baixar e use as opções do navegador para salvar o conteúdo do arquivo.To download the text itself, right-click download and use your browser options to save the file contents.

  4. Selecione o link da barra de trilha WebJobs na parte superior da página para ir para uma lista de WebJobs.Select the WebJobs breadcrumb link at the top of the page to go to a list of WebJobs.

    Barra de trilha do WebJob

    Lista de Trabalhos Web no painel de histórico

Próximas etapasNext steps

O SDK do WebJobs do Azure pode ser usado com o WebJobs para simplificar muitas tarefas de programação.The Azure WebJobs SDK can be used with WebJobs to simplify many programming tasks. Para obter mais informações, consulte O que é o SDK de Trabalhos Web.For more information, see What is the WebJobs SDK.