簡體   English   中英

在本地調試Azure WebJob

[英]Debug Azure WebJob locally

我一直在創建一個Azure WebJob,它的工作非常好,但是我需要創建一個新的功能,我需要在上傳到生產站點之前進行本地測試,我運行調試控制台程序,這可以識別所有功能,但我不能觸發任何功能。

文檔說下一個觸發器是每分鍾....( https://github.com/Azure/azure-webjobs-sdk-extensions#timertrigger

我的代碼:

public static async void ProcessAugustEndowments([TimerTrigger("0 */1 * * * *", RunOnStartup = true)] TimerInfo timerInfo)
    {
        Console.WriteLine("Endowments process tried");

        await endowmentNotification();
    }

輸出: 輸出示例

我運行調試控制台程序,這識別所有功能,但我不能觸發任何功能。

根據你的代碼,我測試了它,發現當我第一次調試應用程序時,我可以得到以下輸出:

在此輸入圖像描述

但是,當我重新啟動應用程序時,我發現觸發該功能需要一些時間。

請確保您已安裝“Microsoft.Azure.WebJobs”和“Microsoft.Azure.WebJobs.Extensions”的最新版本軟件包。 有關更多詳細信息,請參閱本教程

請嘗試減少TimerTrigger的時間間隔並等待作業主機啟動時的一段時間,然后嘗試找出是否可以觸發該功能。 這是我的代碼示例,您可以參考它。

Program.cs中

static void Main()
{
    JobHostConfiguration config = new JobHostConfiguration();
    // Add Triggers and Binders for Timer Trigger.
    config.UseTimers();
    JobHost host = new JobHost(config);
    //host.RunAndBlock();
    host.Start();
    Console.WriteLine("[{0}] Job Host started!!!", DateTime.Now);
    Console.ReadLine();
}

Function.cs

//Function triggered by a timespan schedule every 5 sec.
public static async void ProcessAugustEndowments([TimerTrigger("*/5 * * * * *", RunOnStartup = true)] TimerInfo timerInfo)
{
    Console.WriteLine("Endowments process tried");
    await endowmentNotification();
}

private static async Task endowmentNotification()
{   
    //sleep for 2 sec to simulate processing business logic
    await Task.Delay(TimeSpan.FromSeconds(2));
}

另外,如果TimerTrigger無法滿足您的要求,您可以參考這個官方教程來創建一個計划WebJob,也可以參考這個博客

如果您的功能不會被觸發,我相信那是因為你沒有配置JobHost您使用TimerTrigger

var config = new JobHostConfiguration();
config.UseTimers();

JobHost如何與觸發器一起使用:

  • JobHost啟動時,它會發現一些*TriggerAttribute並將函數編入索引。

  • 通過指定config.UseTimers(); 告訴JobHost使用TimerTriggerAttribute索引函數。

這對於需要config.UseServiceBus()才能工作的其他類型的觸發器(如ServiceBusTrigger config.UseServiceBus()也有效

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM