【问题标题】:Azure WebJobs: Microsoft.Tpl.Dataflow deprecatedAzure WebJobs:不推荐使用 Microsoft.Tpl.Dataflow
【发布时间】:2020-03-02 04:20:01
【问题描述】:

我在我的解决方案上升级了一些非常旧的 nuget 包,发现在我用于 Azure Webjob 的控制台应用程序中,包 Microsoft.Tpl.Dataflow(我使用的是 v4.5.24)已被弃用。所以,我不得不选择 Nuget 替代品:System.Threading.Tasks.Dataflow, v4.11.0。

这是我的Program.cs

internal class Program
{
    private static void Main()
    {
        var config = new JobHostConfiguration();
        config.Queues.MaxDequeueCount = Convert.ToInt32(ConfigurationManager.AppSettings["MaxDequeueCount"]);
        config.Queues.MaxPollingInterval = TimeSpan.FromSeconds(Convert.ToInt32(ConfigurationManager.AppSettings["MaxPollingInterval"]));
        config.Queues.BatchSize = Convert.ToInt32(ConfigurationManager.AppSettings["BatchSize"]); ;
        config.NameResolver = new QueueNameResolver();

        if (config.IsDevelopment)
        {
            config.UseDevelopmentSettings();
        }

        var host = new JobHost();
        host.RunAndBlock();
    }
}
  • new JobHostConfiguration() 现在不见了
  • new JobHost() 现在需要两个参数
  • host.RunAndBlock() 不见了

另一个问题是 QueueTrigger 也没有找到,但有一个单独的包提供了帮助:Microsoft.Azure.WebJobs.Extensions.Storage, v3.0.10

这是一个经典的 .Net 4.7.2 类库项目。我正在查看“new JobHost()”的两个参数的文档,我感觉到.Net Core。我现在陷入僵局了吗?如何转换 Program.cs 以使其工作?

【问题讨论】:

  • 你的其他 nuget 包版本是什么?
  • @GeorgeChen 我现在将版本号添加到问题中

标签: c# azure-webjobs .net-4.7.2


【解决方案1】:

假设你将你的web job包从v1升级到v3,大部分配置可以参考官方教程:Get started with the Azure WebJobs SDK for event-driven background processing

关于队列触发webjob,v3 webjob你必须显式安装存储绑定扩展,更多细节你可以参考这里:Install the Storage binding extension

然后是关于队列触发webjob的配置,如果要设置batch size.etc,可以参考:Queue storage trigger configuration。大多数情况下,您可以从教程或其他文档中获得答案。

下面是我关于net 472 webjob的示例代码。

这是我的 webjob 包和版本。对于 v3 网络作业,依赖项有一个 System.Threading.Tasks.Dataflow (>= 4.8.0),因此安装 Microsoft.Azure.WebJobs 3.0.14.0 主要是您将获得的包,

  • Microsoft.Azure.WebJobs.Host 3.0.14.0
  • Microsoft.Azure.WebJobs 3.0.14.0
  • Microsoft.Azure.WebJobs.Extensions.Storage 3.0.10
  • Microsoft.Azure.WebJobs.Extensions 3.0.6
  • Microsoft.Azure.WebJobs.Host.Storage 3.0.14
  • Microsoft.Extensions.Logging.Console 2.2.0

这里是Program.cs

using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

namespace ConsoleApp9
{
    class Program
    {
        static void Main(string[] args)
        {
            var builder = new HostBuilder();
            builder.ConfigureWebJobs(b =>
            {
                b.AddAzureStorageCoreServices();
                b.AddAzureStorage(a =>
                {
                    a.MaxDequeueCount = 8;
                    a.BatchSize = 16;

                });
            });
            builder.ConfigureLogging((context, b) =>
            {
                b.AddConsole();
            });
            var host = builder.Build();
            using (host)
            {
                host.Run();
            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 2012-11-14
    • 2019-11-08
    • 2019-11-08
    • 2020-01-03
    • 2011-12-02
    • 2015-01-24
    相关资源
    最近更新 更多