TimerTrigger in C# non è attiva

0

Domanda

Sto usando TimerTrigger CRON job per pianificare un'operazione per 2 giorni, ma il grilletto non sembra funzionare. Di seguito è il codice che ho provato,

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!");
        }

locale.le impostazioni.json

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

Il codice precedente non funzionava, ho aggiunto il seguente per il 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();
        }

Ottenendo il seguente errore e mostrando il fix per installare DocumentFormat pacchetto, ma l'installazione di questo pacchetto non è risolvere il FunctionName errore.

enter image description here

Sono un newbie di C# e in grado di trovare qual è il problema qui. Qualsiasi aiuto o di riferimento per il buon esempio sarebbe utile e apprezzato.

Grazie.

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

Migliore risposta

0

Ho provato a riprodurre il tuo problema e capito.

  1. In primo luogo, ho creato Azure Funzione in Visual Studio e Selezionato il Timer Trigger > fare Clic su crea enter image description here

  2. Secondo il vostro requisito per l'esecuzione di questo timer funzione di trigger in ogni minuto, ho cambiato l'espressione di [TimerTrigger("0 * * * * *")]

enter image description here

  1. Dopo di che, costruire il progetto ed eseguire la funzione localmente. L'Output è:

enter image description here

  1. È stata creata la Funzione App in Azzurro (il consumo di piano).
  2. Pubblicata la funzione di cui sopra app per Azure funzione di applicazione da visual studio.
  3. Quindi, Andare al Portale Azure > la Funzione app > Funzioni (in l'indice sinistro del riquadro) > fare Clic sul nome della funzione (nel mio caso è Funzione1) enter image description here

Dopo di che, Vai a Codice+Integrazione, fare Clic su Test/Eseguire la funzione e i log per avviare la registrazione l'esecuzione della funzione, come di seguito:

enter image description here

Esempio 2 (Con il codice fornito nella domanda):

enter image description here

enter image description here

Il problema è che Console.Writeline è una funzione statica. È possibile reindirizzare l'output (stdout) da qualche altra parte, ma non è possibile risalire, che la dichiarazione è stata eseguita da dopo che ha raggiunto stdout.

In modo per noi di fare il nostro per ogni chiamata di Funzione di registrazione, abbiamo bisogno di sapere che la funzione è venuto e che particolare id di chiamata si appartengono. Questo è ciò che il TraceWriter fa. Da lì, il nostro motore di registrazione tubi per l'Archiviazione per il nostro pannello di controllo per pick up. Noi di tubo stdout il tubo per il WebJob registri, ma non è semplice per legare di nuovo per un determinato uso.

Per ulteriori informazioni, seguire questo : https://github.com/Azure/azure-webjobs-sdk/issues/682

Altro modo si può utilizzare è quello di log personalizzato quadro (ad esempio Serilog) e diretto il log in uscita per la Console.

Per ulteriori informazioni sulla registrazione di campioni, si può seguire il seguente link :

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

2021-11-16 12:23:17

Se l'inviato di risposta ha aiutato, è possibile contrassegnare come la risposta cliccando sul segno di spunta. Così facendo è possibile aiutare gli altri membri della comunità.
HariKrishnaRajoli-MT

In altre lingue

Questa pagina è in altre lingue

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