В этой статье мы узнаем о библиотеке Hangfire - .Net, которая упрощает выполнение фоновых задач и рабочих мест в ASP.NET 5.0. Как мы все знаем, его недавно запущенный Framework официально выпущен в ноябре. Здесь я делюсь ссылкой для установки SDK для .Net 5

Предварительные требования

  1. Что такое Hangfire и зачем нужны фоновые задачи.
  2. Установка и настройка Hangfire
  3. Закрепите панель Hangfire.
  4. Время удерживания Hangfire.
  5. Постоянство с базой данных SQL.

Что такое Hangfire и зачем нам это нужно?

Hangfire - это библиотека .Net, которая помогает создавать фоновые задачи и упрощает работу в приложениях .Net. Он поддерживает все типы задач, такие как выстрелил и забыл, повторяющиеся и непрерывные задания. Подробнее об этом можно узнать здесь: Hangfire

Зачем мне нужны фоновые задачи?

Фоновые задачи важны в тех случаях, когда вам нужно выполнить операцию или запланировать задачу на определенное время. В фоновой задаче процесс может продолжаться в фоновом режиме, когда пользователь не может ждать пошагового процесса.

Различные типы вакансий в Hangfire

Повторяющееся задание. Каждые 5 минут фоновая задача запускается и вставляет данные в базу данных.

Запустить и забыть - это задание выполняется только один раз, когда мы запускаем приложение.

Непрерывное задание. Если мы хотим одновременно выполнять задания одно за другим, это будет полезно, чтобы они выполнялись одно за другим.

Повторяющееся задание. Каждые 5 минут фоновая задача запускается и вставляет данные в базу данных.

Запланировать задание - если вы хотите запланировать выполнение задачи в определенное время.

GitHub



Установка и настройка Hangfire

Создайте и настройте шаблон проекта с помощью .Net 5

Чтобы настроить Hangfire, нам нужно установить пакеты, связанные с Hangfire. Ниже приведены 4 пакета, которые помогают в настройке и настройке аутентификации, а также для хранения информации о задании в SQL.

В этом проекте я использовал вставку данных в базу данных с использованием фоновых задач - Hangfire и подход Code first.

Модели

Сотрудник. cs

AppDbContext

EmployeeDbContext.cs

appsettings.js

Настройте строку подключения и внедрение Hangfire и служб в файле запуска.

Startup.cs

Затем нам нужно создать таблицу, используя приведенные ниже команды миграции в консоли диспетчера пакетов.

Создает папку миграции и скрипт миграции внутри целевого проекта.

PM ›Add-Migration‘ MigrationName ’

Следующая команда выполняет сценарий миграции и создает таблицу в базе данных.

PM ›Обновление-База данных

Услуги

EmployeeService.cs

IEmployeeService.cs

Внедрение службы уже выполнено в автозагрузке. cs файл

  1. services.AddTransient ‹IEmployeeService, EmployeeService› ();

Защитите панель управления Hangfire

Чтобы обезопасить панель управления Hangfire, мы настраиваем аутентификацию при входе в систему, чтобы получить доступ к панели управления Hangfire. Я жестко запрограммировал имя пользователя и пароль в файле appsettings.js, чтобы использовать их в файле startup.cs.

appsettings.js

Starup.cs

Время удерживания Hangfire

Обычно фоновые задания зависания выполняются в течение 24 часов. Чтобы избежать этого, я должен включить базовую настройку, чтобы эта работа продержалась на панели инструментов не менее 1 недели.

Startup.cs

  1. GlobalConfiguration.Configuration.UseSqlServerStorage (Configuration.GetConnectionString («myconn»)). WithJobExpirationTimeout (TimeSpan.FromDays (7));

Постоянство с базой данных SQL

Hangfire имеет возможность хранить всю информацию, связанную с заданиями, в базе данных. Для этого нам не нужно ничего, что нужно для настройки этой настройки в автозагрузке. cs, и он автоматически создает все таблицы, в которых мы можем видеть статус задания и соответствующую информацию в этих таблицах.

Startup.cs

  1. services.AddHangfire (c = ›c.UseSqlServerStorage (Configuration.GetConnectionString (« myconn »)));

Приведенный выше набор таблиц был создан автоматически, когда мы настроили установку и указали на базу данных.

Создание фоновых задач

Job.cs

В основном мы будем использовать 4 типа рабочих мест. Я создал все 4 задания в файле startup.cs.

Starup.cs

Запустите приложение

По умолчанию откроется конечная точка swagger. Теперь введите в URL-адрес hangfire, убрав чванство. Он запросит имя пользователя и пароль, поскольку мы уже настроили механизм аутентификации.

Если вы попытаетесь получить доступ без входа в систему.

Если вы нажмете на задания и добьетесь успеха, мы увидим статус выполнения задания и его время, а также мы сможем увидеть исторический график на панели инструментов.

Мы можем видеть наши запланированные задания и повторяющиеся задания на вкладке и в меню, а также у нас есть возможность удалить конкретное задание, которое вы больше не хотите видеть.

Надеюсь, эта статья поможет вам максимально легко создавать фоновые задачи!

Поддержите меня

Продолжай учиться ….!