C # ' daki TimerTrigger tetiklenmiyor

0

Soru

2 Gün boyunca bir görev planlamak için TimerTrigger CRON işini kullanıyorum, ancak tetikleyici çalışmıyor gibi görünüyor. Denediğim kod aşağıdadır,

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

yerel.ayarlar.jsonname

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

Yukarıdaki kod çalışmadığı için main()öğesine aşağıdakileri ekledim.

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();
        }

Aşağıdaki hatayı alıyorum ve DocumentFormat paketini yüklemek için düzeltme gösteriliyor, ancak bu paketi yüklemek FunctionName hatasını çözmüyor.

enter image description here

C# ' da yeniyim ve burada sorunun ne olduğunu bulamıyorum. İyi örneklere herhangi bir yardım veya referans yararlı ve takdir edilecektir.

Teşekkür ederim.

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

En iyi cevabı

0

Sorununuzu yeniden üretmeye çalıştım ve çözdüm.

  1. Öncelikle, Visual Studio'da Azure İşlevi oluşturdum ve Zamanlayıcı Tetikleyicisini Seçtim > Oluştur'a tıklayın enter image description here

  2. Bu zamanlayıcı tetikleme işlevini her dakika çalıştırma gereksiniminize göre, ifadeyi şu şekilde değiştirdim: [TimerTrigger("0 * * * * *")]

enter image description here

  1. Bundan sonra projeyi oluşturun ve işlevi yerel olarak çalıştırın. Çıktı şu şekildedir:

enter image description here

  1. İşlev Uygulamasını Azure'da (tüketim planı) oluşturdu.
  2. Yukarıdaki işlev uygulamasını visual studio'dan Azure işlev uygulamasına yayımladı.
  3. Ardından, Azure Portalına gidin > İşlev uygulamanız > > İşlevler (sol dizin bölmesinde) > > > İşlev adınıza tıklayın ( benim durumumda İşlev1'dir) enter image description here

Bundan sonra, Kod + Entegrasyonuna gidin, İşlevinizi Test Et / Çalıştır'a tıklayın ve günlükler aşağıdaki gibi işlevin yürütülmesini günlüğe kaydetmeye başlayacaktır:

enter image description here

Örnek 2 (Soruda verilen kodla):

enter image description here

enter image description here

Sorun bu Console.Writeline statik bir işlevdir. Çıktısını (stdout) başka bir yere yönlendirebilirsiniz, ancak bu ifadenin stdout'a ulaştıktan sonra nereden çalıştırıldığını izleyemezsiniz.

İşlev başına çağırma günlüğümüzü yapabilmemiz için, hangi işlevden geldiğini ve hangi özel çağırma kimliğine ait olduğunu bilmemiz gerekir. Bu nedir TraceWriter yapar. Pano bizim almak için oradan günlüğü motoru Depolama için boru. Stdout borusunu WebJob günlüklerine bağlarız, ancak belirli bir çağrıya geri bağlamak kolay değildir.

Daha fazla bilgi için şu adımları izleyin : https://github.com/Azure/azure-webjobs-sdk/issues/682

Birinin kullanabileceği başka bir yol, özel günlük çerçevesi (ör. Serilog) ve günlük çıktısını Konsola yönlendirmektir.

Günlük örnekleri hakkında daha fazla bilgi için aşağıdaki bağlantıyı takip edebilirsiniz :

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

2021-11-16 12:23:17

Gönderilen yanıt yardımcı olduysa, onay işaretini tıklatarak yanıt olarak işaretleyebilirsiniz. Bunu yapmak diğer topluluk üyelerine yardımcı olabilir.
HariKrishnaRajoli-MT

Diğer dillerde

Bu sayfa diğer dillerde

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