QueueTrigger不选择消息-Azure WebJobs SDK 3.0

时间:2019-03-01 18:40:17

标签: azure azure-webjobssdk webjob azure-webjobs-triggered queuetrigger

我正在尝试使用SDK 3.0.x开发WebJob,并在本地对其进行测试。我一直在github上跟踪示例,但没有成功。

在本地运行它时,一切正常,它也可以看到laravel/mix函数,但是它没有从队列中选择消息。

Program.cs

ProcessQueueMessage

Functions.cs

static void Main(string[] args)
    {
        var builder = new HostBuilder();
        //builder.UseEnvironment(EnvironmentName.Development);
        builder.ConfigureWebJobs(b =>
        {
            b.AddAzureStorageCoreServices();
            b.AddAzureStorage();

        });
        builder.ConfigureAppConfiguration((context, config) =>
        {
            config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
        });

        builder.ConfigureLogging((context, b) =>
        {
            b.AddConsole();

            // If the key exists in settings, use it to enable Application Insights.
            string instrumentationKey = context.Configuration["APPINSIGHTS_INSTRUMENTATIONKEY"];
            if (!string.IsNullOrEmpty(instrumentationKey))
            {
                b.AddApplicationInsights(o => o.InstrumentationKey = instrumentationKey);
            }
        });

        builder.ConfigureServices((context, services) =>
        {
            //services.AddSingleton<IJobActivator, MyJobActivator>();
            services.AddScoped<Functions, Functions>();
            services.AddSingleton<IHostService, HostService>();
        })
        .UseConsoleLifetime();

        var host = builder.Build();
        using (host)
        {
            host.Run();
        }
    }

这是输出的屏幕截图

Laravel Mix

感谢您的帮助

队列消息“ newrequests”的屏幕截图

enter image description here

1 个答案:

答案 0 :(得分:0)

从快照中,您的网络作业在本地运行良好。它没有选择邮件,因为您没有在newrequests队列中添加邮件。

仅在添加消息后才触发该功能。否则我会得到和您一样的结果。

enter image description here

关于本教程,您可以参考官方文档:Get started with the Azure WebJobs SDK。并确保设置正确的存储帐户。以下是我的appsettings.json。确保将appSettings.json文件的“复制到输出目录”属性设置为如果较新则复制始终复制。否则会发生异常:未配置存储帐户“存储”。

{
  "ConnectionStrings": {
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=mystorage;AccountKey=key;..."
  }
}

希望这对您有帮助,如果您还有其他问题,请告诉我。