Azure WebJobs: Microsoft.Tpl.Dataflow устарел - PullRequest
0 голосов
/ 02 марта 2020

Я обновил несколько очень старых пакетов nuget в своем решении и обнаружил, что в консольном приложении, которое я использовал для Azure Webjob, пакет Microsoft.Tpl.Dataflow (я использовал v4.5.24) устарел. Итак, мне пришлось go с альтернативой 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

Это classi c. Net 4.7.2 Проект библиотеки классов. Я просматриваю документацию по двум параметрам для `new JobHost () 'и чувствую. Net Core. Я сейчас в тупике? Как мне конвертировать Program.cs, чтобы он работал?

1 Ответ

1 голос
/ 02 марта 2020

Предположим, вы обновили свой пакет веб-работ с v1 до v3, в основном это конфигурация, на которую вы могли бы обратиться в официальном руководстве: Начните работу с Azure WebJobs SDK для фоновой обработки на основе событий .

А что касается веб-задания триггера очереди, то в веб-работе v3 вы должны явно установить расширение привязки хранилища, более подробную информацию вы можете найти здесь: Установите расширение привязки хранилища .

Затем о конфигурации веб-задания триггера очереди, если вы хотите установить размер пакета .et c, вы можете обратиться к: Конфигурация триггера хранилища очереди . В основном по вашей проблеме вы можете получить ответ из учебника или других документов.

Ниже приведен мой пример кода о 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();
            }
        }
    }
}
...