Azure WebJobs:Microsoft.Tpl.Dataflow 已弃用
Azure WebJobs: Microsoft.Tpl.Dataflow deprecated
我在我的解决方案上升级了一些非常旧的 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 Class 库项目。我正在查看“new JobHost()”的两个参数的文档,我感觉到了 .Net Core。我现在陷入僵局了吗?我如何转换 Program.cs 使其工作?
假设你将你的web作业包从v1升级到v3,大部分配置你可以参考官方教程:Get started with the Azure WebJobs SDK for event-driven background processing.
关于队列触发 webjob,v3 webjob 你必须显式安装存储绑定扩展,更多细节你可以参考这里:Install the Storage binding extension.
然后是关于queue trigger webjob的配置,如果要设置batch size等可以参考:Queue storage trigger configuration。大多数问题你可以从教程或其他文档中得到答案。
下面是我关于net 472 webjob的示例代码。
这是我的网络作业包和版本。使用 v3 webjob,依赖项有一个 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.扩展 3.0.6
- Microsoft.Azure.WebJobs.Host.存储 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();
}
}
}
}
我在我的解决方案上升级了一些非常旧的 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 Class 库项目。我正在查看“new JobHost()”的两个参数的文档,我感觉到了 .Net Core。我现在陷入僵局了吗?我如何转换 Program.cs 使其工作?
假设你将你的web作业包从v1升级到v3,大部分配置你可以参考官方教程:Get started with the Azure WebJobs SDK for event-driven background processing.
关于队列触发 webjob,v3 webjob 你必须显式安装存储绑定扩展,更多细节你可以参考这里:Install the Storage binding extension.
然后是关于queue trigger webjob的配置,如果要设置batch size等可以参考:Queue storage trigger configuration。大多数问题你可以从教程或其他文档中得到答案。
下面是我关于net 472 webjob的示例代码。
这是我的网络作业包和版本。使用 v3 webjob,依赖项有一个 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.扩展 3.0.6
- Microsoft.Azure.WebJobs.Host.存储 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();
}
}
}
}