Exécuter des tâches en arrière-plan avec WebJobs dans Azure App ServiceRun Background tasks with WebJobs in Azure App Service

Vue d’ensembleOverview

WebJobs est une fonctionnalité de Microsoft Azure App Service qui vous permet d’exécuter un programme ou un script dans un même contexte, en tant qu’application web, application API ou application mobile.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. L’utilisation des tâches web n’entraîne aucun coût supplémentaire.There is no additional cost to use WebJobs.

Cet article explique comment déployer WebJobs à l’aide du portail Azure pour charger un fichier exécutable ou un script.This article shows how to deploy WebJobs by using the Azure portal to upload an executable or script. Pour plus d’informations sur la façon de développer et de déployer WebJobs à l’aide de Visual Studio, consultez Déploiement de WebJobs à l’aide de Visual Studio.For information about how to develop and deploy WebJobs by using Visual Studio, see Deploy WebJobs using Visual Studio.

Le SDK Azure WebJobs peut être utilisé avec WebJobs pour simplifier de nombreuses tâches de programmation.The Azure WebJobs SDK can be used with WebJobs to simplify many programming tasks. Pour plus d’informations, consultez Présentation du Kit de développement logiciel (SDK) WebJobs Azure.For more information, see What is the WebJobs SDK.

Azure Functions fournit une autre façon d’exécuter des programmes et des scripts.Azure Functions provides another way to run programs and scripts. Pour obtenir une comparaison entre WebJobs et Functions, consultez Choisir entre Flow, Logic Apps, Functions et WebJobs.For a comparison between WebJobs and Functions, see Choose between Flow, Logic Apps, Functions, and WebJobs.

Types de tâches webWebJob types

Le tableau suivant décrit les différences entre une tâche Web continue et une tâche web déclenchée.The following table describes the differences between continuous and triggered WebJobs.

ContinueContinuous DéclenchéeTriggered
Démarre immédiatement lorsque la tâche web est créée.Starts immediately when the WebJob is created. Pour empêcher la tâche de se terminer, le programme ou le script est généralement exécuté à l’intérieur d’une boucle sans fin.To keep the job from ending, the program or script typically does its work inside an endless loop. Si la tâche se termine, vous pouvez la redémarrer.If the job does end, you can restart it. Démarre uniquement en cas de déclenchement manuel ou selon une planification.Starts only when triggered manually or on a schedule.
S’exécute sur toutes les instances sur lesquelles l’application web s’exécute.Runs on all instances that the web app runs on. Vous pouvez limiter la tâche web à une seule instance.You can optionally restrict the WebJob to a single instance. S’exécute sur une seule instance sélectionnée par Azure pour l’équilibrage de charge.Runs on a single instance that Azure selects for load balancing.
Prend en charge le débogage à distance.Supports remote debugging. Ne prend pas en charge le débogage à distance.Doesn't support remote debugging.

Note

Une application web peut expirer après 20 minutes d’inactivité.A web app can time out after 20 minutes of inactivity. Seules les demandes vers le site scm (déploiement) ou des pages de l’application web dans le portail permettent de réinitialiser le minuteur.Only requests to the scm (deployment) site or to the web app's pages in the portal reset the timer. Les requêtes à destination du site actif ne réinitialisent pas le minuteur.Requests to the actual site don't reset the timer. Si votre application exécute des tâches Web continues ou planifiées, activez l’option Toujours actif pour vous assurer que les tâches web s’exécutent de manière fiable.If your app runs continuous or scheduled WebJobs, enable Always On to ensure that the WebJobs run reliably. Cette fonctionnalité est disponible uniquement dans les niveaux tarifaires De base, Standard et Premium.This feature is available only in the Basic, Standard, and Premium pricing tiers.

Types de fichier pris en charge pour les scripts ou les programmesSupported file types for scripts or programs

Les types de fichiers suivants sont pris en charge :The following file types are supported:

  • .cmd, .bat, .exe (en utilisant une commande Windows).cmd, .bat, .exe (using Windows cmd)
  • .ps1 (en utilisant PowerShell).ps1 (using PowerShell)
  • .sh (en utilisant un interpréteur de commandes).sh (using Bash)
  • .php (en utilisant PHP).php (using PHP)
  • .py (en utilisant Python).py (using Python)
  • .js (en utilisant Node.js).js (using Node.js)
  • .jar (en utilisant Java).jar (using Java)

Création d’une tâche web continueCreate a continuous WebJob

  1. Dans le portail Azure, ouvrez la page App Service de votre application Web App Service, application API ou application mobile.In the Azure portal, go to the App Service page of your App Service web app, API app, or mobile app.

  2. Sélectionnez WebJobs.Select WebJobs.

    Sélection de WebJobs

  3. Dans la page WebJobs, sélectionnez Ajouter.In the WebJobs page, select Add.

    Page WebJob

  4. Utilisez les paramètres Ajouter une tâche web, comme spécifié dans le tableau.Use the Add WebJob settings as specified in the table.

    Ajouter une page WebJob

    ParamètreSetting Exemple de valeurSample value DescriptionDescription
    NameName myContinuousWebJobmyContinuousWebJob Un nom unique au sein d’une application App Service.A name that is unique within an App Service app. Doit commencer par une lettre ou un chiffre et ne peut pas contenir de caractères spéciaux, à part les tirets et les traits de soulignement (« - » et « »).Must start with a letter or a number and cannot contain special characters other than "-" and "".
    Chargement de fichiersFile Upload ConsoleApp.zipConsoleApp.zip Un fichier .zip qui contient votre exécutable un fichier script ainsi que les fichiers de prise en charge requis pour exécuter le programme ou le script.A .zip file that contains your executable or script file as well as any supporting files needed to run the program or script. Les types de fichiers exécutables ou scripts pris en charge sont répertoriés dans la section Types de fichiers pris en charge.The supported executable or script file types are listed in the Supported file types section.
    TypeType ContinueContinuous Les types de tâches web sont décrites précédemment dans cet article.The WebJob types are described earlier in this article.
    Mettre à l'échelleScale Multi-instancesMulti instance Disponible uniquement pour les tâches web continues.Available only for Continuous WebJobs. Détermine si le programme ou le script s’exécute sur toutes les instances ou une seule instance.Determines whether the program or script runs on all instances or just one instance. L’option permettant une exécution sur plusieurs instances ne s’applique pas aux niveaux tarifaires Gratuit ou Partagé.The option to run on multiple instances doesn't apply to the Free or Shared pricing tiers.
  5. Cliquez sur OK.Click OK.

    La nouvelle tâche web apparaît dans la page WebJobs.The new WebJob appears on the WebJobs page.

    Liste des tâches web

  6. Pour arrêter ou redémarrer une tâche web continue, cliquez avec le bouton droit sur la tâche web dans la liste, puis sélectionner Démarrer ou Arrêter.To stop or restart a continuous WebJob, right-click the WebJob in the list and click Stop or Start.

    Arrêt d’une tâche web continue

Créer une tâche web déclenchée manuellementCreate a manually triggered WebJob

  1. Dans le portail Azure, ouvrez la page App Service de votre application Web App Service, application API ou application mobile.In the Azure portal, go to the App Service page of your App Service web app, API app, or mobile app.

  2. Sélectionnez WebJobs.Select WebJobs.

    Sélection de WebJobs

  3. Dans la page WebJobs, sélectionnez Ajouter.In the WebJobs page, select Add.

    Page WebJob

  4. Utilisez les paramètres Ajouter une tâche web, comme spécifié dans le tableau.Use the Add WebJob settings as specified in the table.

    Ajouter une page WebJob

    ParamètreSetting Exemple de valeurSample value DescriptionDescription
    NameName myTriggeredWebJobmyTriggeredWebJob Un nom unique au sein d’une application App Service.A name that is unique within an App Service app. Doit commencer par une lettre ou un chiffre et ne peut pas contenir de caractères spéciaux, à part les tirets et les traits de soulignement (« - » et « »).Must start with a letter or a number and cannot contain special characters other than "-" and "".
    Chargement de fichiersFile Upload ConsoleApp.zipConsoleApp.zip Un fichier .zip qui contient votre exécutable un fichier script ainsi que les fichiers de prise en charge requis pour exécuter le programme ou le script.A .zip file that contains your executable or script file as well as any supporting files needed to run the program or script. Les types de fichiers exécutables ou scripts pris en charge sont répertoriés dans la section Types de fichiers pris en charge.The supported executable or script file types are listed in the Supported file types section.
    TypeType DéclenchéeTriggered Les types de tâches web sont décrites précédemment dans cet article.The WebJob types are described earlier in this article.
    DéclencheursTriggers ManuelManual
  5. Cliquez sur OK.Click OK.

    La nouvelle tâche web apparaît dans la page WebJobs.The new WebJob appears on the WebJobs page.

    Liste des tâches web

  6. Pour exécuter la tâche Web, cliquez sur son nom dans la liste avec le bouton droit, puis cliquez sur Exécuter.To run the WebJob, right-click its name in the list and click Run.

    Exécuter une tâche Web

Créer une tâche web planifiéeCreate a scheduled WebJob

  1. Dans le portail Azure, ouvrez la page App Service de votre application Web App Service, application API ou application mobile.In the Azure portal, go to the App Service page of your App Service web app, API app, or mobile app.

  2. Sélectionnez WebJobs.Select WebJobs.

    Sélection de WebJobs

  3. Dans la page WebJobs, sélectionnez Ajouter.In the WebJobs page, select Add.

    Page WebJob

  4. Utilisez les paramètres Ajouter une tâche web, comme spécifié dans le tableau.Use the Add WebJob settings as specified in the table.

    Ajouter une page WebJob

    ParamètreSetting Exemple de valeurSample value DescriptionDescription
    NameName myScheduledWebJobmyScheduledWebJob Un nom unique au sein d’une application App Service.A name that is unique within an App Service app. Doit commencer par une lettre ou un chiffre et ne peut pas contenir de caractères spéciaux, à part les tirets et les traits de soulignement (« - » et « »).Must start with a letter or a number and cannot contain special characters other than "-" and "".
    Chargement de fichiersFile Upload ConsoleApp.zipConsoleApp.zip Un fichier .zip qui contient votre exécutable un fichier script ainsi que les fichiers de prise en charge requis pour exécuter le programme ou le script.A .zip file that contains your executable or script file as well as any supporting files needed to run the program or script. Les types de fichiers exécutables ou scripts pris en charge sont répertoriés dans la section Types de fichiers pris en charge.The supported executable or script file types are listed in the Supported file types section.
    TypeType DéclenchéeTriggered Les types de tâches web sont décrites précédemment dans cet article.The WebJob types are described earlier in this article.
    DéclencheursTriggers PlanifiéeScheduled Pour que la planification fonctionne correctement, activez la fonctionnalité Toujours actif.For the scheduling to work reliably, enable the Always On feature. La fonctionnalité Toujours actif est disponible uniquement dans les niveaux tarifaires De base, Standard et Premium.Always On is available only in the Basic, Standard, and Premium pricing tiers.
    Expression CRONCRON Expression 0 0/20 * * * *0 0/20 * * * * Les expressions CRON sont décrites dans la section suivante.CRON expressions are described in the following section.
  5. Cliquez sur OK.Click OK.

    La nouvelle tâche web apparaît dans la page WebJobs.The new WebJob appears on the WebJobs page.

    Liste des tâches web

Expressions CRONCRON expressions

Vous pouvez entrer une expression CRON dans le portail ou inclure un fichier settings.job à la racine du fichier .zip de votre tâche web, comme dans l’exemple suivant :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 * * * *"
}

Note

Quand vous déployez une tâche web à partir de Visual Studio, marquez les propriétés du fichier settings.job comme Copier si plus récent.When you deploy a WebJob from Visual Studio, mark your settings.job file properties as Copy if newer.

Affichage de l’historique des tâchesView the job history

  1. Choisissez la tâche web dont vous souhaitez afficher l’historique, puis sélectionnez le bouton Journaux.Select the WebJob you want to see history for, and then select the Logs button.

    Bouton Journaux

  2. À la page Détails de la tâche web, sélectionnez une heure pour afficher les détails d’une exécution.In the WebJob Details page, select a time to see details for one run.

    Détails de la tâche web

  3. À la page WebJob Run Details, sélectionnez Activer/désactiver la sortie pour afficher le texte du contenu du journal.In the WebJob Run Details page, select Toggle Output to see the text of the log contents.

    Détails d'exécution de la tâche WebJob

    Pour afficher le texte de sortie dans une nouvelle fenêtre de navigateur, sélectionnez télécharger .To see the output text in a separate browser window, select download. Pour télécharger le texte, cliquez avec le bouton droit sur télécharger et utilisez les options de votre navigateur pour enregistrer le contenu du fichier.To download the text itself, right-click download and use your browser options to save the file contents.

  4. Sélectionnez le lien de navigation WebJobs en haut de la page pour accéder à une liste de tâches web.Select the WebJobs breadcrumb link at the top of the page to go to a list of WebJobs.

    Barre de navigation de la tâche web

    Liste des tâches Web dans le tableau de bord d’historique

Étapes suivantesNext steps

Le SDK Azure WebJobs peut être utilisé avec WebJobs pour simplifier de nombreuses tâches de programmation.The Azure WebJobs SDK can be used with WebJobs to simplify many programming tasks. Pour plus d’informations, consultez Présentation du Kit de développement logiciel (SDK) WebJobs Azure.For more information, see What is the WebJobs SDK.