TimerTrigger en C# n'est pas de déclenchement

0

La question

Je suis à l'aide de TimerTrigger tâche CRON pour planifier une tâche pour 2 jours, mais le déclencheur ne semble pas fonctionner. Voici le code que j'ai essayé,

public static void StartupJob([TimerTrigger("0 * * * * *", RunOnStartup = true)] TimerInfo timerInfo) //0 * * * * * added CRON job to run for every minute for testing purpose
        {
            Console.WriteLine("Timer job fired!");
        }

locaux.les paramètres.json

{
    "IsEncrypted": false,
    "Values": {
      "AzureWebJobsStorage": "UseDevelopmentStorage=true",
      "FUNCTIONS_WORKER_RUNTIME": "dotnet"
    }
}

Comme le code ci-dessus ne fonctionnait pas, j'ai ajouté ce qui suit à la main()

static void Main()
        {
            var config = new JobHostConfiguration();
            config.UseTimers();
            config.Tracing.ConsoleLevel = System.Diagnostics.TraceLevel.Verbose;

            if (config.IsDevelopment)
            {
                config.UseDevelopmentSettings();
            }

            var host = new JobHost(config);
            // The following code ensures that the WebJob will be running continuously
            host.RunAndBlock();
        }

L'erreur suivante se produit et montrant fixer pour installer DocumentFormat paquet, mais l'installation de ce paquet n'est pas la résolution de la FunctionName erreur.

enter image description here

Je suis un débutant en C# et impossible de trouver quel est le problème ici. Toute aide ou de référence à de bons exemples serait utile et apprécié.

Je vous remercie.

azure-functions azure-webjobs c# cron
2021-11-14 18:01:13
1

La meilleure réponse

0

J'ai essayé de reproduire votre problème et trouvé une solution.

  1. Tout d'abord, j'ai créé Azure Fonction dans Visual Studio et Sélectionné la Minuterie de Déclenchement > Cliquez sur créer enter image description here

  2. Selon vos besoins, pour exécuter cette minuterie la fonction de déclenchement à chaque minute, j'ai changé l'expression de [TimerTrigger("0 * * * * *")]

enter image description here

  1. Après cela, la construction du projet et de l'exécution de la fonction localement. La Sortie est:

enter image description here

  1. A créé la Fonction d'Application dans Azure (la consommation de plan).
  2. Publié la fonction ci-dessus application d'Azur fonction de l'app à partir de visual studio.
  3. Ensuite, Allez au Portail Azure > Votre Fonction app > Fonctions (à gauche dans le volet index) > Cliquez sur votre nom de la fonction (dans mon cas c'est Fonction1) enter image description here

Après cela, Allez à Code+Intégration, Cliquez sur Test/Exécuter votre fonction et les journaux de démarrer l'enregistrement de l'exécution de la fonction comme ci-dessous:

enter image description here

Exemple 2 (Avec le code donné dans la question):

enter image description here

enter image description here

Le problème est que Console.Writeline est une fonction statique. Vous pouvez rediriger sa sortie (stdout) à un autre endroit, mais vous ne pouvez pas trace où cette déclaration a été exécuté après avoir atteint la sortie standard stdout.

Afin de nous permettre de faire notre par l'invocation de la Fonction de journalisation, nous avons besoin de savoir quelle fonction il vient et quel id d'invocation il appartient. C'est ce que l' TraceWriter n'. À partir de là, notre moteur de journalisation des tuyaux sur l'espace de Stockage pour notre tableau de bord pour en ramasser. Nous faisons de rediriger la sortie standard (stdout) de la pipe à la WebJob les journaux, mais ce n'est pas simple de s'y attacher, de retour à une invocation.

Pour plus d'informations, suivez ce : https://github.com/Azure/azure-webjobs-sdk/issues/682

Autre manière, on peut utiliser est de coutume de journalisation (par exemple Serilog) et direct journal de sortie de la Console.

Pour plus d'informations sur l'enregistrement des échantillons, vous pouvez suivre le lien ci-dessous :

https://docs.microsoft.com/en-us/sandbox/functions-recipes/logging?tabs=csharp

2021-11-16 12:23:17

Dans la réponse aidé, vous pouvez le marquer comme étant la réponse en cliquant sur la case à cocher. Cela peut aider d'autres membres de la communauté.
HariKrishnaRajoli-MT

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................