Wyzwalacz czasu w C# nie uruchamia się

0

Pytanie

Używam zadanie CRON TimerTrigger do planowania zadania na 2 dni, ale wyzwalacz, jak się wydaje, nie działa. Poniżej znajduje się kod, który próbowałem,

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

local.settings.json

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

Ponieważ powyższy kod nie działa, dodałem następujący w 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();
        }

Uzyskano następujący błąd i pokazano poprawka do zainstalowania pakietu DocumentFormat, ale instalacja tego pakietu nie eliminuje błąd nazwy funkcji.

enter image description here

Jestem początkujący w C# i nie mogę zrozumieć, w czym tu problem. Każda pomoc lub link na dobre przykłady, które byłyby przydatne i zostały docenione.

Dziękuję.

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

Najlepsza odpowiedź

0

Starałem się odtworzyć swój problem i rozumiem to.

  1. Po pierwsze, stworzyłem funkcję Azure w Visual Studio i wybrał Wyzwalacz czasowy > Kliknij przycisk utwórz enter image description here

  2. W zależności od zapotrzebowania uruchomić tę funkcję uruchomić minutnik w każdej minucie, zmieniłem wyraz [TimerTrigger("0 * * * * *")]

enter image description here

  1. Po to zrobić, należy utworzyć projekt i uruchom funkcję lokalnie. Na wyjściu uzyskuje się:

enter image description here

  1. Stworzył aplikację funkcji w Azure (plan konsumpcji).
  2. Opublikował powyższy aplikacja-funkcję w aplikacji funkcji systemu Azure z Visual studio.
  3. Następnie przejdź na portal Azure > aplikacja funkcji >> Opcje (w okienku po lewej stronie indeksu) >>> Kliknij na nazwę swojej funkcji (w moim przypadku jest to funkcja 1). enter image description here

Po tym przejdź do sekcji "Kod+integracja", kliknij "Testowania/Uruchomienia swoją funkcję, dzienniki i zaczną rejestrować wykonywanie funkcji, jak pokazano poniżej:

enter image description here

Przykład 2 (Z tym kodem w temacie):

enter image description here

enter image description here

Problem w tym, że Console.Writeline jest statycznej funkcji. Możesz przekierować wyjście (stdout) w inne miejsce, ale nie można namierzyć, skąd został wykonany ten operator, po tym, jak dotarł do stdout.

Aby móc prowadzić rejestr połączeń każdej z funkcji, musimy wiedzieć, z jakiej funkcji pochodzi i jakiego konkretnego identyfikatora połączenia należy. To co to jest TraceWriter robi. Stamtąd nasz mechanizm rejestracji wysyła go do magazynu, aby nasz panel monitorowania mogłam go odebrać. Przekazujemy kanał stdout w dzienniki sieci web zadań, ale przywiązać go do tego telefon nie jest łatwe.

Aby uzyskać więcej informacji, wykonaj następujące kroki : https://github.com/Azure/azure-webjobs-sdk/issues/682

Innym sposobem, który można użyć, to niestandardowa struktura rejestrowania (np. Serilog) i bezpośredni wydruk dziennika na konsoli.

Aby uzyskać więcej informacji o próbkach rejestrowania można przejść w linku poniżej :

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

2021-11-16 12:23:17

Jeśli jest podana odpowiedź pomógł, można oznaczyć go jako odpowiedź, klikając pole wyboru. To może pomóc innym członkom społeczności.
HariKrishnaRajoli-MT

W innych językach

Ta strona jest w innych językach

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